以下命令
echo 1.8e-308 | gawk '$1<0.05'
没有输出,而这个
gawk 'BEGIN{if(8.2547e-309<0.05){print "true"}}'
打印“true”。
This answer解释为什么第一个命令不产生输出。
可能的解决方法是
echo 1.8e-308 | awk '$1+0 < 0.05 {print}'
我的问题是:有更好的解决方案吗?例如,awk的一些包装器,允许不修改每个脚本。
最佳解决方案可能不需要重新编译awk以使用mpfr库。
答案 0 :(得分:1)
尝试以下方法:
echo 1.8e-308 | gawk '($1+0)<0.05'
产生
1.8e-308
其他一些有趣的观察结果:
echo "True" | gawk '1.8e-308<0.05'
给出
True
和
echo "True" | gawk '1.8e-322<1.9e-322'
给出
True
,而
echo "True" | gawk '1.8e-323<1.9e-323'
什么都没有......