【发布时间】:2013-11-03 14:04:33
【问题描述】:
为什么 Python 中的后一种情况不会产生结果 3.3?
>>> 1.0 + 2.3
3.3
>>> 1.1 + 2.2
3.3000000000000003
这里发生的事情对我来说似乎没有任何意义。对于通过1.0 + 2.3 而不是通过1.1 + 2.2 获得的相同结果的表示,这里有什么限制?
【问题讨论】:
-
读起来很难,但这将帮助您了解发生了什么:docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
-
一般来说,浮点数不是十进制数的精确表示,而是近似值。要获得十进制数的精确表示,请参阅docs.python.org/2/library/decimal.html
-
@JasonSperske:我想说这是推荐给任何能够在 SO 代表中获得 5k 并对此感到疑惑的人阅读。
标签: python floating-point