小编Ome*_*les的帖子

如何在Python(版本3)中使用传统的十进制数舍入?

我试图弄清楚如何使用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)

python decimal python-3.x

2
推荐指数
1
解决办法
716
查看次数

标签 统计

decimal ×1

python ×1

python-3.x ×1