2 awk
我有一个包含多个列的制表符分隔文件,其中一列包含以这种格式编写的数字
4.07794484177529E-293
我想知道AWK是否理解这种符号?即我只想获得该列中的数字小于0.1的行.
但我不确定AWK是否会理解"4.07794484177529E-293"是什么 - 它可以对这种格式进行算术比较吗?
是的,回答你的问题,awk确实理解E符号.
您可以通过以下方式确认:
awk '{printf "%f\n", $1}' <<< "4.07794484177529E-3"
0.004078
Run Code Online (Sandbox Code Playgroud)
通常,awk使用双精度浮点数来表示所有数值.这为您提供了工作范围1.7E–308和1.7E+308工作范围,因此您可以使用4.07794484177529E-293
另外:您可以指定如何使用awk格式化浮点数的打印,如下所示:
awk '{printf "%5.8f\n", $1}' <<< "1.2345678901234556E+4"
12345.67890123
Run Code Online (Sandbox Code Playgroud)
说明:
%5.8f 是什么格式浮动5前面的部分.指定在小数点之前打印多少位数8后部分.指定多少位数字小数点后打印