gpt4 book ai didi

python - 带 2 位小数的舍入方法的错误结果

转载 作者:太空宇宙 更新时间:2023-11-04 09:35:52 24 4
gpt4 key购买 nike

我对带有 2 位小数的 round() 的结果感到困惑

a = 1352.845
res = round(a, 2)
=> 1352.85 (Right as I expected)

b = 578.005
res = round(b, 2)
=> 578.0 (Wrong, It would be 578.01 instead of 578.0)

案例 b 会发生什么或我误解了什么?

回答:

from decimal import Decimal, ROUND_UP

Decimal('578.005').quantize(Decimal('.01'), rounding=ROUND_UP)

因为它需要用于货币,所以 python round()(银行家舍入)的默认约定不适合我的情况

最佳答案

虽然这可能会造成混淆,但这是因为大多数小数不能精确表示为 float 类型。

如需进一步引用,请参阅:https://docs.python.org/3/tutorial/floatingpoint.html#tut-fp-issues

关于python - 带 2 位小数的舍入方法的错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53809196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com