# Floating Point

Discussion in 'C++' started by Bob Smith, Dec 26, 2003.

1. ### Bob SmithGuest

round it
/B

Bob Smith, Dec 26, 2003

2. ### geertjoosGuest

Hi,

A pice of code.

float A = 10;
float B = 7;
float result;

result = A / B;

when i run this program, i've got as result 1,4285714.... etcetc.
is it possible to get only two or one decimals after the floating point? And how?

Geert

geertjoos, Dec 26, 2003

3. ### Geert JoosGuest

And how do you do that, can you give me an example? I'm just a bit new in
C++
Thanks.
Geert

Geert Joos, Dec 26, 2003

Here's one way:

#include <iostream>
#include <cmath>

using namespace std;

int
main()
{
float A = 10;
float B = 7;

float result = A / B;

float prec = 2.0;
float shift_factor = pow(10, prec);

cout << round(result * shift_factor) / shift_factor << '\n';

return 0;
}

Note that the above method is not particularly robust, elagent, or
efficient. It's probably not even accurate for arbitrary values of
'result'. Use at your own risk.

5. ### AlexandrosGuest

escribiÃ³:
If what you want is to display the number with 2 decimals although it
actually has more you can do the following:

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
float a=3.239487;
float b=23.234;
float r=b/a;

cout << setprecision(3) << r << endl;

return 0;
}

Alexandros, Dec 26, 2003
6. ### Jeff SchwabGuest

#include <iostream>

/* Truncate a number to (at most) two digits past the decimal point.
* NB: This implementation is naive.
*/
template< typename T >
T round2( T const& t )
{
return int( t * 100 ) / 100.0;
}

int main( )
{
float A = 10;
float B = 7;
float result;

result = A / B;

std::cout << result << '\n';
std::cout << round2( result ) << '\n';
}

Jeff Schwab, Dec 26, 2003
7. ### WalterGuest

And how?

float A = 10;
float B = 7;
float result;

result = ((long)((A * 100) / B)) / 100.0;

-Walter
www.digitalmars.com free C/C++/D compilers

Walter, Dec 27, 2003