我只是在python 2.7中检查以下内容
打印0.1 + 0.2
输出: - 0.3
印刷0.1 + 0.2 - 0.3
输出: - 5.55111512313e-17
但我期待0.0 那么,如何实现这个目标呢?
答案 0 :(得分: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")