如何在awk中限制小数位数而不进行四舍五入

如何在awk中限制小数位数而不进行四舍五入

我想将 0.748 打印为 0.74。

如果我使用

awk '{printf "%0.2f\n",$1}' filename

对于 0.748,它打印 0.75。但我想要 0.74 并删除剩余部分。对于 77.348,它应该是 77.34。

有任何想法吗?

没有

gawk -M

使用 ROUNDMODE="Z" 的选项??

甚至我也找不到天花板和地板的功能。

答案1

使用awk

  • print

    awk -F. '{print $1"."substr($2,1,2)}' filename
    

或者

  • printf

    awk -F. '{printf "%0.2f\n",$1"."substr($2,1,2)}' filename
    

例子

$ awk -F. '{print $1"."substr($2,1,2)}' foo
0.74
77.65

$ awk -F. '{printf "%0.2f\n",$1"."substr($2,1,2)}' foo
0.74
77.65

$ cat foo
0.748
77.657

相关内容