python - 如何解决Python中 float 的表示错误?

标签 python floating-point truncation

我需要在不四舍五入的情况下截断百分之位的小数。 我正在使用该方法:

y = 78.459

x = int(y * 100) / 100

返回为78.45。正如它应该的那样。

但是,如果我这样做

y = 5.10

x = int(y * 100) / 100

它返回为 5.09,而它应该是 5.10

我知道这是一个表示错误,由于 Python 中的浮点不准确,但我不知道如何修复它。 如果有人可以帮助我弄清楚如何修复表示错误,或者找到一种更好的方法来截断百分之一的位置,我将非常感激。 谢谢

最佳答案

为此使用decimal模块:

>>> from decimal import Decimal as d
>>> y = d('5.10')
>>> x = int(y * 100) / 100
>>> x
5.1
>>> 

关于python - 如何解决Python中 float 的表示错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52377617/

相关文章:

python - 如何获取和修改嵌套字典的值?

python - 从 `code.interact()` 之类的 Python shell 使用 IPython

c# - 在 C# 中从 IBM float 转换为 IEEE float 标准,反之亦然

MySQL 字段 DATETIME 截断 ISO8601

python - 如何使用 python flask 从谷歌云存储服务图像

python - 有没有办法在数据框中找到每月最后一天的值

c++ - floor & ceil 正浮点值

c++ - SSE 和 iostream : wrong output for floating point types

java - 如何在 jshell 中使用/设置截断命令中的选择器?

php - 如何获取 PHP 的 getTraceAsString() 的完整字符串?