首页 > 解决方案 > 为什么使用小数法时 0.2 不等于 0.2?

问题描述

我仍然是 Python 的初学者,并且使用 Python 中的内置十进制方法,它“稍微”关闭了。

这是代码:

import decimal
print(decimal.Decimal(0.02))

这是输出:

0.0200000000000000004163336342344337026588618755340576171875

我开始怀疑,这怎么可能?0.02不是0.0200000000000000004163336342344337026588618755340576171875,但decimal模块认为0.020.0200000000000000004163336342344337026588618755340576171875。十进制模块有问题,还是我做错了什么?

标签: pythonprecision

解决方案


如果您的输入已经是浮点数,则该Decimal方法无法执行任何操作,它不会舍入它。

Decimal不这样做的唯一方法是,它需要一个字符串:

print(decimal.Decimal("0.02"))

推荐阅读