AWK是否理解用E表示法写的数字?

时间:2012-11-16 06:31:09

标签: awk

我有一个包含多个列的制表符分隔文件,其中一列包含以这种格式编写的数字

4.07794484177529E-293

我想知道AWK是否理解这种符号?即我想只获得该列中数字小于0.1的行。

但我不确定AWK是否会理解“4.07794484177529E-293”是什么 - 它可以对这种格式进行算术比较吗?

1 个答案:

答案 0 :(得分:6)

是的,为了回答您的问题,awk确实理解了E符号。

您可以通过以下方式确认:

awk '{printf "%f\n", $1}' <<< "4.07794484177529E-3"
0.004078

一般来说,awk uses double-precision floating-point numbers to represent all numeric values。这使您可以使用1.7E–3081.7E+308之间的范围,因此您可以使用4.07794484177529E-293

除此之外:您可以使用awk指定如何使用awk格式化浮点数的打印:

awk '{printf "%5.8f\n", $1}' <<< "1.2345678901234556E+4"
12345.67890123

说明:

  • %5.8f是浮动
  • 的格式
  • 5之前的.部分指定在小数点之前打印的位数
  • 8.部分指定小数点后打印的位数