[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
**Subject**: **Re: math.floor and rounding**
**From**: KHMan <keinhong@...>
**Date**: Mon, 20 Sep 2010 23:53:47 +0800

On 9/20/2010 11:32 PM, Jose wrote:

I want to round numbers with two decimal digits.
I use math.floor( n * 100 ) but sometimes I have situations like:
n = 10.20
math.floor( n * 100 ) --> 1019
My current solution is to always add 0.001 to n, but is this the right
approach ?

`If it's *precisely* 2 decimal places, consider instead to do your
``calculations without any fractions, i.e. use 1020 etc.
`

`Look at it this way -- if you're doing things like that, perhaps
``you are implementing things wrongly. Floating point can only have
``fractions that are the exact sums of 1/2, 1/4, 1/8, etc. If you
``expect *exact* values for things like 10.20, then you're doing it
``wrong.
`

`And if you're doing currency calculations like that, please smash
``your keyboard over your head ;-)
`
--
Cheers,
Kein-Hong Man (esq.)
Kuala Lumpur, Malaysia