2014-10-16 78 views
-2

我只是检查以下东西在Python 2.7的Python:浮法附加值和减法给出错误的值

打印0.1 + 0.2

输出: - 0.3

打印0.1 + 0.2 - 0.3

输出: - 5.55111512313e -17

但我期望0.0 那么,如何实现这个东西呢?

+0

的可能重复(HTTP://计算器。 COM /问题/ 588004/IS-浮点运算碎) – MattDMo 2014-10-16 19:22:30

回答

0

这里的问题是float类型没有足够的精度来显示你想要的结果。如果您尝试打印部分总和0.1 + 0.2,则会看到您获得的浮动结果为0.30000000000000004。

因此,5.55111512313e-17是与浮点型变量最接近的结果。如果您尝试将结果转换为int,那么:

int(0.2 + 0.1 - 0.3) 

您会看到0,这是正确的整数近似值。 您可以通过使用小数类获得浮点变量0.0。

试试这个:[?是浮点运算破]

from decimal import Decimal 
Decimal("0.2") + Decimal("0.1") - Decimal("0.3") 

,你会看到的结果是十进制( “0.0”)