複数の列を持つタブ区切りのファイルがあり、1 つの列にはこのような形式で書かれた数字が含まれています
4.07794484177529E-293
AWK はこの表記法を理解しているのだろうか?つまり、その列の数値が 0.1 より小さい行だけを取得したいのです。
しかし、AWK が「4.07794484177529E-293」が何であるかを理解できるかどうかはわかりません。この形式で算術比較を行うことはできますか?
複数の列を持つタブ区切りのファイルがあり、1 つの列にはこのような形式で書かれた数字が含まれています
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
前の部分.
は、小数点の前に印刷する桁数を指定します apoint8
後の部分は.
、小数点の後に印刷する桁数を指定します