python - 为什么使用小数法时 0.2 不等于 0.2?
问题描述
我仍然是 Python 的初学者,并且使用 Python 中的内置十进制方法,它“稍微”关闭了。
这是代码:
import decimal
print(decimal.Decimal(0.02))
这是输出:
0.0200000000000000004163336342344337026588618755340576171875
我开始怀疑,这怎么可能?0.02
不是0.0200000000000000004163336342344337026588618755340576171875
,但decimal
模块认为0.02
是0.0200000000000000004163336342344337026588618755340576171875
。十进制模块有问题,还是我做错了什么?
解决方案
如果您的输入已经是浮点数,则该Decimal
方法无法执行任何操作,它不会舍入它。
Decimal
不这样做的唯一方法是,它需要一个字符串:
print(decimal.Decimal("0.02"))
推荐阅读
- filter - 是否可以在 NestJs 上的异常过滤器上使用 useInterceptor?
- python - 与循环一起使用时,Ansible 覆盖安全组规则
- nexus - 将 jar 部署到服务器的 RPM 规范文件
- javascript - 如何通过点击事件使用新值更新变量并使用相同事件撤消它
- javascript - 将“异步”方法绑定到“开启”事件(例如单击)时是否存在任何潜在问题?
- r - R - 有没有办法在重复即将进行的观察后生成从 1 开始的行号?
- flask - 根据配置导入不同的sqlalchemy方言
- laravel - 我如何使用 Laravel Sanctum 同时处理 SPA 和基于令牌的身份验证
- c# - 与界面交互
不同实现列表上的方法 - php - PHP没有迭代