我正在尝试编写一个函数,该函数将接受错误值列表及其相关参数,并:
- 将错误值四舍五入到1个有效数字(根据惯例确定)
- 将参数值四舍五入到其关联错误中存在的数字。
例如,如果我的列表如下所示:
errors = [0.0097, 0.83, 0.05, 0.0045]
params = [0.0240, 7.85, 0.75, 12.5]
应用此函数后,生成的列表将会如下所示:
errors_r = [0.01, 0.8, 0.05, 0.005]
params_r = [0.02, 7.9, 0.75, 12.500]
在此过程中,首先将错误四舍五入到1个有效数字,然后将参数四舍五入到与误差数相同的位数。
下面的函数取自这个问题How to round a number to significant figures in Python,它很好地将误差四舍五入到1个有效数字:
from math import log10, floor
def round_to_1(x):
return round(x, -int(floor(log10(x))))
为了将
params
列表中的值四舍五入到其关联误差的位数,我可以使用round()函数,并在舍入后将其传递给误差中的小数位数,但我不确定如何得出那个数字。