gpt4 book ai didi

python - 如何在 Python(版本 3)中对小数使用传统舍入?

转载 作者:行者123 更新时间:2023-11-28 21:19:54 24 4
gpt4 key购买 nike

我正在尝试使用 Python 版本 3(特别是版本 3.4.0)使用小学和中学教授的传统方法弄清楚如何对小数进行四舍五入。

例如,使用小数 0.745,我试图将其四舍五入到最接近的百分之一。传统上,四舍五入的值为 0.75,但以下代码给出了 0.74:

>>> import decimal
>>> a = decimal.Decimal("0.745")
>>> round(a, 2)
Decimal('0.74')

但是,将原始值更改为 0.746 似乎返回 0.75:

>>> import decimal
>>> b = decimal.Decimal("0.746")
>>> round(b, 2)
Decimal('0.75')

这似乎与传统的四舍五入相矛盾(如果我没记错的话)。有人可以指导我使用 Python 进行舍入的正确方法吗?

更新:使用所选答案的指导,这里是我的问题的完整代码解决方案:

>>> import decimal
>>> decimal.getcontext().rounding = decimal.ROUND_HALF_UP
>>> a = decimal.Decimal("0.745")
>>> round(a, 2)
Decimal('0.75')

最佳答案

这是预期的(也是最好的)行为:所谓的“银行家四舍五入”,它是无偏见的,四舍五入到最接近的偶数。

你总是可以:

import decimal
decimal.getcontext().rounding = decimal.ROUND_HALF_UP

请注意,ROUND_HALF_UP 有偏差,这就是它不是默认值的原因。

关于python - 如何在 Python(版本 3)中对小数使用传统舍入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23772211/

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