Awk 在特定列上舍入到2个小数点
我有这样一份清单:Awk 在特定列上舍入到2个小数点,awk,rounding,decimal-point,Awk,Rounding,Decimal Point,我有这样一份清单: Cond1 4 0.2343 Cond2 10 1.765 Cond3 8 1.9234 Cond1 4 0.24 Cond2 10 1.77 Cond3 8 1.92 我试图将第3列中的值四舍五入为2个小数点,因此它将如下所示: Cond1 4 0.2343 Cond2 10 1.765 Cond3 8 1.9234 Cond1 4 0.24 Cond2 10 1.77 Cond3 8 1.92 我知道在awk中有一种方法可以做到这一点,但我似乎无法理解。使用%.2
Cond1 4 0.2343
Cond2 10 1.765
Cond3 8 1.9234
Cond1 4 0.24
Cond2 10 1.77
Cond3 8 1.92
我试图将第3列中的值四舍五入为2个小数点,因此它将如下所示:
Cond1 4 0.2343
Cond2 10 1.765
Cond3 8 1.9234
Cond1 4 0.24
Cond2 10 1.77
Cond3 8 1.92
我知道在awk中有一种方法可以做到这一点,但我似乎无法理解。使用
%.2f
修饰符作为printf
或sprintf()
:
或
输出:
Cond1 4 0.23
Cond2 10 1.76
Cond3 8 1.92
更多信息,例如:
对
printf
或sprintf()使用%.2f
修饰符:
或
输出:
Cond1 4 0.23
Cond2 10 1.76
Cond3 8 1.92
更多信息,例如:
我们鼓励发问者展示他们迄今为止为自己解决问题所做的努力。我们鼓励发问者展示他们迄今为止为自己解决问题所做的努力。请注意,在某些情况下使用printf/sprintf
这种方式可能会产生不同的结果(无偏见与天真)在不同的机器上-请参阅,并且sprintf(“%.2f”)
也会更改typeof($3)
(typeof()
函数仅为GNU awk)从strnum到string和man,在做了一些更改之后,我对旧代码进行了很长时间的调试。请注意,在某些情况下,以这种方式使用printf/sprintf
可能会在不同的机器上产生不同的结果(无偏与幼稚)-请参阅sprintf(%.2f”)
也会更改typeof(typeof()
函数仅为GNU awk)从strnum到string和man,经过一些更改后,我调试了很长一段时间的旧代码。