Floating Point

B

Bob Smith

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?

Thanks in advance.
Geert

round it
/B
 
G

geertjoos

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?

Thanks in advance.
Geert
 
A

Adam Fineman

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

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.

- Adam
 
A

Alexandros

(e-mail address removed) escribió:
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?

Thanks in advance.
Geert

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;
}
 
J

Jeff Schwab

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?

Thanks in advance.
Geert



#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';
}
 
W

Walter

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?

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

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

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,901
Latest member
Noble71S45

Latest Threads

Top