使用 nawk 选项避免丢失精度

使用 nawk 选项避免丢失精度

我有一个由包含数字数据的行组成的数据文件。数字数据的示例是 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

相关内容