在python中,我有一个数字:U = 0.02462631224438585 +- 3.350971888120506e-06
。
1s.f.
,如何将其四舍五入到正确的有效数字?有没有使用numpy
的简单方法?或者scipy
或者内置功能最适合这个?
我试过使用set_printoptions(precision=3)
但这不起作用。我也尝试过使用 round(number, significant - 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
defaut 是两个有效数字,但是有一个用于控制输出的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