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,经过一些更改后,我调试了很长一段时间的旧代码。