Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Math::round not rounding correctly

by Laurent_R (Canon)
on Dec 23, 2014 at 20:00 UTC ( [id://1111220]=note: print w/replies, xml ) Need Help??


in reply to Math::round not rounding correctly

Asides from the general comment on floating-point arithmetic calculation, you should know that the international IEEE standard for rounding numbers is more complicated that what you probably expect. If you want to round a number with one decimal place to an integer, numbers whose decimal place is 5 will be rounded up or down, depending on whether the previous digit is odd or even. This is the international standard, and this is what the standard C library implements for the round function, and this is what Perl is also doing, presumably because it is based on the C library. The rational for that is that if you always round up numbers with one decimal place equal to 5, you get a bias upward in sums of large number of numbers. So that a number with one decimal place equal to 5 is sometimes rounded up and sometimes rounded down.

Replies are listed 'Best First'.
Re^2: Math::round not rounding correctly
by bulrush (Scribe) on Dec 23, 2014 at 20:06 UTC
    Thank you, but if you look at my added test programs in Edit 2, you will see the number actually is "3461.5000", and it should be rounded to "3462".

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1111220]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (7)
As of 2024-03-29 13:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found