我正在寻找一种方法将python(输出中)的数字舍入为4位有效数字。
也就是说,我想要一个具有此行为的函数r4()
:
r4(1.23456) -> '1.235'
r4(12.3456) -> '12.35'
r4(123.456) -> '123.5'
r4(1234.56) -> '1235.'
在所有这些情况下,我舍入到“4”而不是“5”因为我想要IEEE舍入模式“Round half Even”(舍入到最近的关系到最近的事件整数),所以函数也应该产生:
r4(1.23556) -> '1.236'
我查看了round()
并使用了.f
格式,这没什么用。我正在考虑将其纳入科学记数法,计算有效数字的数量,然后将其取回,但这看起来很愚蠢。
答案 0 :(得分:1)
找到正确的方法:
def r4(input_value):
from decimal import Decimal,ROUND_HALF_EVEN,Context
ctx = Context(prec=4, rounding=ROUND_HALF_EVEN)
return str(ctx.create_decimal(input_value))