1

在 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

4

1 回答 1

2

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
于 2020-12-14T17:06:24.910 回答