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 <gam...@users.sourceforge.net> > 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@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-user > ------------------------------------------------------------------------------ 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@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user