Velocity Reviews > C++ > Floating Point

# Floating Point

Bob Smith
Guest
Posts: n/a

 12-26-2003
"(E-Mail Removed)" wrote:

> 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

round it
/B

geertjoos@pandora.Be
Guest
Posts: n/a

 12-26-2003
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

Geert Joos
Guest
Posts: n/a

 12-26-2003

"Bob Smith" <(E-Mail Removed)> schreef in bericht
news:(E-Mail Removed)...
> "(E-Mail Removed)" wrote:
>
> > 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

>
> round it
> /B

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

Guest
Posts: n/a

 12-26-2003
Geert Joos wrote:
> "Bob Smith" <(E-Mail Removed)> schreef in bericht
>>
>>round it
>>/B

>
> 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.

--

Alexandros
Guest
Posts: n/a

 12-26-2003
http://www.velocityreviews.com/forums/(E-Mail 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?
>
> 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;
}

Jeff Schwab
Guest
Posts: n/a

 12-26-2003
(E-Mail Removed) wrote:
> 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

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

Walter
Guest
Posts: n/a

 12-27-2003

"(E-Mail Removed)" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed) om...
> 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