python - 如何对数字进行四舍五入以纠正不确定性?

标签 python significant-digits uncertainty

在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/

相关文章:

r - 地板和天花板有 2 位或更多有效数字

Python Uncertainties 模块,ufloat 无法解压变量

tensorflow - 如何计算神经网络预测的置信度得分

python - python不确定性中uarray的平均值

python - 通过直方图匹配比较图像

python - 在Linux Mint系统上运行的应用程序未收到udp数据包

python - uwsgi 容器中的 Google StackDriver 日志级别始终处于错误级别

python - 根据列名的条件对 pandas dataframe 列值求和

c++ - 在没有循环的情况下从 C++ 中的 int 中提取 n 个最重要的非零位

javascript - 如何使用 JavaScript 舍入到任意数量的有效数字?