我正在尝试使用Python版本3(特别是版本3.4.0)按照小学和中学教授的传统方法来四舍五入小数。
例如,对于小数0.745,我想将其四舍五入到最近的百分位。传统上,四舍五入的值应为0.75,但以下代码给出了0.74:
然而,将原始值更改为0.746似乎返回0.75:
例如,对于小数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')