python中的浮点精度

时间:2011-11-21 16:55:06

标签: python floating-point

c不等于0.321的任何理由?

>>> from math import ceil
>>> a = 123.321
>>> b = a % 60
>>> b
3.320999999999998
>>> ceil(b)
4.0
>>> c = ceil(b) - b
>>> c
0.679000000000002

更新

对于任何想要了解我如何获得我所寻找的价值的人来说:

>>> c = b - floor(b)

2 个答案:

答案 0 :(得分:7)

你将在大约五分钟内面对:P

ceil(b)是4.0
b是3.320999999999998

所以ceil(b)-b应该是4.0 - 3.320999999999998。试着把它放在你的计算器中,你就会明白为什么c不等于0.321。

如果你想让c等于.321,你应该做b - floor(b)。

答案 1 :(得分:3)

嗯,因为4 - 3.321是.679?至少是在我三年级的时候。