我有一个由包含数字数据的行组成的数据文件。数字数据的示例是 4053.45677771。当我使用 nawk 执行如下算术运算时:
nawk -F, '{print $1*1000}' data > data_2
data_2 文件中的数值看起来是指数的,并且精度丢失;4.05346e+06
如何才能将其乘以 1000,而不使用指数且不丢失精度?
答案1
用于printf
更精细地控制输出:
$ echo 4053.45677771 | nawk '{printf "%f\n",$1*1000}'
4053456.777710
因此,对于你的例子:
nawk -F, '{printf "%f\n",$1*1000}' data > data_2
print
如果您设置了变量,您也可以坚持OFMT
(POSIX.1-2008 支持它):
$ echo 4053.45677771 | nawk -vOFMT='%f' '{print $1*1000}'
4053456.777710