Python 如何对数字进行四舍五入以修正不确定性?
在python中,我有一个数字:Python 如何对数字进行四舍五入以修正不确定性?,python,significant-digits,uncertainty,Python,Significant Digits,Uncertainty,在python中,我有一个数字:U=0.02462631224438585+-3.350971888120506e-06 由于不确定性被四舍五入到1s.f.,如何将其四舍五入到正确的有效数字? 有没有一种简单的方法可以使用numpy?或scipy或内置函数是否最适合此功能 我尝试过使用设置打印选项(精度=3),但这不起作用。 我也尝试过使用round(number,signitive-len(str(number))),但这似乎有些冗长 我确信我在几年前使用过一个函数,而不必创建自己的函数 最终
U=0.02462631224438585+-3.350971888120506e-06
由于不确定性被四舍五入到1s.f.,如何将其四舍五入到正确的有效数字?
有没有一种简单的方法可以使用numpy
?或scipy
或内置函数是否最适合此功能
我尝试过使用设置打印选项(精度=3)
,但这不起作用。
我也尝试过使用round(number,signitive-len(str(number)))
,但这似乎有些冗长
我确信我在几年前使用过一个函数,而不必创建自己的函数
最终数字应为U=2.4626e-02+-3e-06
或者U=(2.4626+-3e-4)e-02
模块具有计算有效位数的能力
import uncertainties
a = uncertainties.ufloat(0.02462631224438585, 3.350971888120506e-06)
print(a)
# 0.0246263+/-0.0000034
defaut是两个有效数字,但是有一个格式
键用于控制输出
print('{:.1u}, {:.3uf}, {:.2uL}, {:0.2ue}'.format(a,a,a,a))
# 0.024626+/-0.000003, 0.02462631+/-0.00000335, 0.0246263 \pm 0.0000034, (2.46263+/-0.00034)e-02
你的意思是你希望它以这种方式打印,同时保留最初存储在数据中的值,还是你真的想截断变量?在我的手机上,所以我不能给出完整的答案,但你应该看看软件包。它支持精确的浮点运算和精确的舍入。我把它放到字典里,但我正在评估不确定性,所以它必须是实际变化的变量