我试图弄清楚如何使用Python版本3(特别是版本3.4.0)在小学和中学教授的传统方法来舍入十进制数.
例如,使用十进制数0.745,我试图将其四舍五入到最接近的百分位数.传统上,舍入值为0.75,但以下代码给出0.74:
>>> import decimal
>>> a = decimal.Decimal("0.745")
>>> round(a, 2)
Decimal('0.74')
Run Code Online (Sandbox Code Playgroud)
但是,将原始值更改为0.746似乎返回0.75:
>>> import decimal
>>> b = decimal.Decimal("0.746")
>>> round(b, 2)
Decimal('0.75')
Run Code Online (Sandbox Code Playgroud)
这似乎与传统的舍入相矛盾(如果我没记错的话).有人能引导我在Python中使用正确的舍入方法吗?
更新: 使用所选答案的指导,这是我的问题的完整代码解决方案:
>>> import decimal
>>> decimal.getcontext().rounding = decimal.ROUND_HALF_UP
>>> a = decimal.Decimal("0.745")
>>> round(a, 2)
Decimal('0.75')
Run Code Online (Sandbox Code Playgroud)