浮動小数点数を比較したときの出力エラー

浮動小数点数を比較したときの出力エラー

Bashで2つの浮動小数点数を比較しようとしたときに問題が発生しました。以下は、ソリューションに基づくコードの例です。ここ

num1=0.502E-01
num2=0.01
echo $num1'>'$num2 | bc -l
echo $num2'>'$num1 | bc -l

11回目のエコーと2回目のエコーの出力を期待していましたが、得られたのは100目と12回目のエコーでした。この入力に問題がありますか?これらの浮動小数点数を一貫して比較するにはどうすればよいですか?

ベストアンサー1

awkシェルスクリプトから呼び出すと、浮動小数点比較ももちろん可能です。

num1=0.502E-01
num2=0.01
awk -v a="$num1" -v b="$num2" 'BEGIN{print(a>b)}'
1
awk -v a="$num1" -v b="$num2" 'BEGIN{print(b>a)}'
0

おすすめ記事