For example:
print 72.805, round(72.805,2)
print 72.815, round(72.815,2)
print 72.825, round(72.825,2)
print 72.835, round(72.835,2)
print 72.845, round(72.845,2)
print 72.855, round(72.855,2)
print 72.865, round(72.865,2)
print 72.875, round(72.875,2)
print 72.885, round(72.885,2)
print 72.895, round(72.895,2)
The results:
72.805 72.81
72.815 72.82
72.825 72.83
72.835 72.83 !!! not 72.84
72.845 72.85
72.855 72.86
72.865 72.86 !!! not 72.87
72.875 72.88
72.885 72.89
72.895 72.9
The problem seems to exists with numbers ending with 5.
Another examples:
round(0.015,2) == 0.01 != 0.02
round(0.045,2) == 0.04 != 0.05
round(0.075,2) == 0.07 != 0.08
round(0.105,2) == 0.1 != 0.11
round(0.145,2) == 0.14 != 0.15
round(0.155,2) == 0.15 != 0.16
round(0.175,2) == 0.17 != 0.18
round(0.185,2) == 0.18 != 0.19
round(0.205,2) == 0.2 != 0.21
round(0.215,2) == 0.21 != 0.22
round(0.235,2) == 0.23 != 0.24
round(0.245,2) == 0.24 != 0.25
round(0.285,2) == 0.28 != 0.29
round(0.295,2) == 0.29 != 0.3
round(0.305,2) == 0.3 != 0.31
round(0.345,2) == 0.34 != 0.35
It's the same on Linux and Win32.
|