2

複数の列を持つタブ区切りのファイルがあり、1 つの列にはこのような形式で書かれた数字が含まれています

4.07794484177529E-293

AWK はこの表記法を理解しているのだろうか?つまり、その列の数値が 0.1 より小さい行だけを取得したいのです。

しかし、AWK が「4.07794484177529E-293」が何であるかを理解できるかどうかはわかりません。この形式で算術比較を行うことはできますか?

4

1 に答える 1

6

はい、あなたの質問に答えるために、 awkE表記を理解しています。

次の方法で確認できます。

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前の部分.は、小数点の前に印刷する桁数を指定します apoint
  • 8後の部分は.、小数点の後に印刷する桁数を指定します
于 2012-11-16T06:49:59.910 に答える