我对awk
执行浮点计算时的行为感到惊讶。它导致我对表格数据进行错误计算。
$ awk 'BEGIN {print 2.3/0.1}'
23 <-- Ok
$ awk 'BEGIN {print int(2.3/0.1)}'
22 <-- Wrong!
$ awk 'BEGIN {print 2.3-2.2==0.1}'
0 <-- Surprise!
$ awk 'BEGIN {print 2.3-2.2>0.1}' <-- Din't produce any output :(
$ awk 'BEGIN {print 2.3-2.2<0.1}'
1 <-- Totally confused now ...
有人可以解释一下这里发生了什么吗?
编辑 1
正如@fedorqui所指出的,由于重定向运算符 ( > ) ,倒数第二个命令的输出会转到名为0.1的文件。
那么我应该如何执行大于(>)操作?
@fedorqui也给出了解决方案
$ awk 'BEGIN {print (2.3-2.2>0.1)}'
0 <-- Wrong!