Python 如何在不使用全局上下文的情况下对十进制数进行四舍五入?
使用python 3.6 我可以看出,我们可以指定舍入和精度,但它只能通过设置上下文来全局指定 如何对特定的十进制实例执行此操作 类似于以下伪代码:Python 如何在不使用全局上下文的情况下对十进制数进行四舍五入?,python,python-3.x,decimal,Python,Python 3.x,Decimal,使用python 3.6 我可以看出,我们可以指定舍入和精度,但它只能通过设置上下文来全局指定 如何对特定的十进制实例执行此操作 类似于以下伪代码: myNumber = Decimal(1.101901) roundedNumber = myNumber.toFixed(2, ROUND_DOWN) # expected result ==> 1.10 roundedNumber = myNumber.toFixed(2, ROUND_UP) # expected result ==&
myNumber = Decimal(1.101901)
roundedNumber = myNumber.toFixed(2, ROUND_DOWN)
# expected result ==> 1.10
roundedNumber = myNumber.toFixed(2, ROUND_UP)
# expected result ==> 1.11
因此,我可以用我想要的舍入和精度解析每个数字。使用该方法
对我来说,还不清楚预期的产出。你能澄清一下吗?我希望这个小数可以用特定的精度和特定的舍入选项来解析。我编辑了这个问题。你可以使用这个方法作为旁白,如果可以的话,你不应该将
float
对象直接输入Decimal
。使用quantize
的示例代码,如@snakecharmerb:myNumber=Decimal(1.101901)打印(myNumber.quantize(Decimal('1.00'),舍入=向下舍入))打印(myNumber.quantize(十进制('1.00'),四舍五入=四舍五入)
from decimal import *
myNumber = Decimal(1.101901)
roundedNumber = myNumber.quantize(Decimal('1.00'), rounding=ROUND_DOWN) # 1.10
roundedNumber = myNumber.quantize(Decimal('1.00'), rounding=ROUND_UP) # 1.11