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