Pregunta

The following command

echo 1.8e-308 | gawk '$1<0.05'

produce no output, while this one

gawk 'BEGIN{if(8.2547e-309<0.05){print "true"}}'

print "true".

This answer explain why the first command produce no otuput.

A possible workaround is

echo 1.8e-308 | awk '$1+0 < 0.05 {print}'

My question is: there is a better solution? For example some wrapper of awk that allow not to modify each script.

The optimal solution possibly would not require to recompile awk to use mpfr library.

¿Fue útil?

Solución

Try the following:

echo 1.8e-308 | gawk '($1+0)<0.05'

produces:

1.8e-308

Some other interesting observations:

echo "True" | gawk '1.8e-308<0.05'

gives

True

and

echo "True" | gawk '1.8e-322<1.9e-322'

gives

True

whereas

echo "True" | gawk '1.8e-323<1.9e-323'

gives nothing..

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top