[Gambas-user] Possible bug in round() function

Ricardo Díaz Martín oceanosoftlapalma at ...626...
Fri Jan 31 22:07:57 CET 2014


Thanks for the explanation. Just for this reason I wrote "possible bug"
instead "bug". Definitely what a disillusioning floating points!

It will be great if gambas could work natively with decimal numbers. Until
this time I'll still working with long * 10^decimal digits.

Regards,
Ricardo


2014-01-30 Benoît Minisini <gambas at ...1...>

> Le 30/01/2014 11:33, Ricardo Díaz Martín a écrit :
> > Hi guys,
> >
> > Try to do this in the gambas console:
> >
> > ? round (283.5 * 0.21, -2)
> > 59,53
> >
> > ? 283.5 * 0.21
> > 59,535
> >
> > ? round(59.535, -2)
> > 59,54
> >
> > Why round (283.5 * 0.21, -2) doesn't works as expected? (or as I
> > expected...)
> >
> > I got the same wrong behavior in my program using something like fAux =
> > round(fNumber1, fNumber2, -2)
> >
> > Regards,
> > Ricardo Díaz
> >
>
> Round() is defined that way:
>
> Round(x, y) = Int(x / (10 ^ y) + 0.5) * (10 ^ y)
>
> 283.5 * 0.21 is not equal to 59.535 in binary:
>
> ?283.5 * 0.21 - 59.535
> -7,105427357601E-15
>
> 59.535 cannot be encoded in binary (like 1/3 in decimal):
>
> 59.535 = 59 + 0.100010001111010111000010100011110101110000101000...
>
> The '11110101110000101000' pattern is repeated ad vitam aeternam.
>
> So 283.5 * 0.21 is lower than 59.535, and so Round returns 59.53.
>
> As Tobi said, floating points are disillusioning!
>
> --
> Benoît Minisini
>
>
> ------------------------------------------------------------------------------
> WatchGuard Dimension instantly turns raw network data into actionable
> security intelligence. It gives you real-time visual feedback on key
> security issues and trends.  Skip the complicated setup - simply import
> a virtual appliance and go from zero to informed in seconds.
>
> http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk
> _______________________________________________
> Gambas-user mailing list
> Gambas-user at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user
>



More information about the User mailing list