进行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算术运算[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python算术运算符赋值运算符关系运算符逻辑运算符条件运算符(三元运算符)

Python算术运算符

Python算术运算符

Python算术运算符

python-算术运算符复合赋值运算符

python 算术运算