python - 将浮点数舍入到最接近的 0.005 倍数并舍入到 3 个十进制数字会产生奇怪的输出
问题描述
我写了一小段代码,将一个数字四舍五入到最接近的 0.005 倍数,但它产生了一个奇怪的输出,这是我没想到的。我正在使用 Python 版本3.7.3
这是代码:
number = 1.639
print(5 * round(number / 5, 3))
输出
1.6400000000000001
预期产出
1.64
检查此replit以获取有关不同值的详细输出。
谁能告诉我为什么会这样?
解决方案
print(round(5 * round(1.639 / 5, 3), 3))
再次四舍五入,因为根据我所见,您将四舍五入的数字乘以 5,然后您希望该数字被四舍五入。我猜你应该舍入第一个舍入步骤的输出!
推荐阅读
- angular - 带有 json 对象的 Angular 单选按钮 patchValue
- python - 在 Python 3.7 中使用工厂函数生成注释类型时出现“typing.ClassVar”的问题
- asp.net-core - Asp.Net core Swashbuckle 设置 operationId
- chatbase - Chatbase 证书已于 9 月 7 日到期
- symfony - 如何使用 QueryBuilder 在 Symfony 上构建此查询?
- python - 删除 URL/电子邮件中的所有空格
- javascript - 如果div被点击,隐藏元素
- html - 为什么字体 awesome 出现了 3 次?
- powershell - 将 url 传递给移动浏览器窗口的 powershell 脚本
- jenkins - 在 JENKINS 定期构建并开始另一份工作