在Python中,我有一个数字:U = 0.02462631224438585 +- 3.350971888120506e-06
。
由于不确定性四舍五入为 1s.f.
,如何将其四舍五入为正确的有效数字?
有没有一种简单的方法来使用numpy?或者 scipy
或者内置函数最适合这个?
我尝试过使用 set_printoptions( precision=3)
但这不起作用。
我也尝试过使用 round(number, important - len(str(number))) ,但这似乎很冗长。
我确信我已经使用了几年前的函数,而无需创建自己的函数。
最终数字应为U = 2.4626e-02 +- 3e-06
或U = (2.4626 +- 3e-4)e-02
最佳答案
uncertainties
模块具有计算有效位数的能力
import uncertainties
a = uncertainties.ufloat(0.02462631224438585, 3.350971888120506e-06)
print(a)
# 0.0246263+/-0.0000034
默认是两位有效数字,但是有一个format
键用于控制输出
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
关于python - 如何对数字进行四舍五入以纠正不确定性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55548156/