I am trying to round some numbers in two decimal point and I run into a bizare behavior.
please try the following code:
var num:Number = 30.25
for (var i = 0 ; i < 100 ; i++){
var a:Number = (Math.round(num * 100) / 100)
var b:Number = (Math.round(num * 100) * 0.01 )
trace (num.toString() + " -- " + a.toString() + " -- " + b.toString())
num += 0.999;
}
x = y /100 and x = y * 0.01 should be equal.
(And x = y * 0.01 should be faster).
But if I run the above code the result is not always equal.
I get for example
- 46.23400000000003 -- 46.23 -- 46.230000000000004 47.23300000000003 -- 47.23 -- 47.230000000000004 48.232000000000035 -- 48.23 -- 48.230000000000004 49.23100000000004 -- 49.23 -- 49.230000000000004
while x=y/100 is always correct x=y*0.01 sometimes adds a small value like 0.000000000000004 at the end.
Am I doing something wrong? Has anyone else observed this behavior?