关于浮点:进行python算术运算

Make Python aritmetic operations

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
python limiting floats to two decimal points

如果我这样做的话:12:45-12

在python中,我得到的答案是:0.449999999929

我做这件事是为了做到:0.45?

顺便说一句,我记得要做的是:12.45-12.0但没有结果。


这是许多小数不能用二进制精确表示的结果。

例如,0.25可以:是0.01(0*1,0*1/2,1*1/4)。0.1不能(0.0001100110011...),就像你不能把1/3写成一个完整的小数(0.3333333333...)。

如果你这样做了

1
print(12.45-12)

你得到

1
0.45

因为print只显示第一个有效数字。

请参阅python文档以获得一个很好的摘要。

如果您确实关心十进制值的精确性(例如,为了避免金融机构中的超人III场景),请查看十进制模块。


同样在python 2.4-up中,如果您需要更高的精度,请查看十进制模块。


这完全没问题,但你需要谷歌(并在StackOverflow上搜索)搜索"IEEE754"。

编辑:看一看,例如这里:python中的对数不准确,或者这里:另一个浮点问题