进行Python算术运算[重复]
Posted
技术标签:
【中文标题】进行Python算术运算[重复]【英文标题】:Make Python aritmetic operations [duplicate] 【发布时间】:2011-05-07 19:42:04 【问题描述】:可能重复:python limiting floats to two decimal points
如果我这样做:12.45-12
在 Python 中,我得到的答案是:0.44999999999999929
我这样做是为了:0.45?
顺便说一句,我确实记得这样做:12.45-12.0 但没有结果。
【问题讨论】:
重复。请在 Python 中搜索浮点数。请。你说的是货币吗?钱?使用decimal
。
【参考方案1】:
这是因为许多小数不能用二进制精确表示。
例如 0.25 可以:它是0.01
(0*1, 0*1/2, 1*1/4)。 0.1 不能 (0.0001100110011...
),就像你不能将 1/3 写成完整的小数 (0.3333333333...
)。
如果你这样做
print(12.45-12)
你得到
0.45
因为print
只显示第一个有效数字。
请参阅Python docs 以获得出色的摘要。
如果您确实关心十进制值的准确性(例如为了避免金融机构中出现超人 III 场景),请查看 Decimal 模块。
【讨论】:
【参考方案2】:同样在 Python 2.4 中,如果您需要更高的准确性,请查看 decimal 模块。
【讨论】:
【参考方案3】:完全没问题,但您需要在 Google 上搜索(并在 *** 上搜索)“IEEE 754”。
编辑:看看例如这里:Inaccurate Logarithm in Python 或这里:Another floating point question
【讨论】:
以上是关于进行Python算术运算[重复]的主要内容,如果未能解决你的问题,请参考以下文章