截断测量输出以匹配其误差的有效数字



我想自动创建一个带有测量值的乳胶表。测量值以以下格式的文本文件给出:

#measurements #error
1.23456       0.00034
2.34567       0.34

等等。

我的问题是现在我想以以下格式打印数据:

#measurement(error)
1.23456(34)
2.34(34)

其中括号中的位数表示受括号中给出的不确定性影响的测量位数。

我到了

#measurement(error)
1.23456(34)
2.34567(34000)

这不是很漂亮

通过使用

awk '{printf("%f(%d)n", $1, $2*100000)}' datafile        

有没有办法根据误差的单个大小截断测量的输出。我不会感到尴尬,采用其他方法的解决方案也非常受欢迎!

awk救援!

1$ awk 'NR==1; 
        NR>1 {n=match($2,/[1-9]/); 
              print substr($1,1,n+1) "(" substr($2,n) ")" }' file
#measurements #error
1.23456(34)
2.34(34)

最新更新