Bashで2つの浮動小数点数を比較しようとしたときに問題が発生しました。以下は、ソリューションに基づくコードの例です。ここ
num1=0.502E-01
num2=0.01
echo $num1'>'$num2 | bc -l
echo $num2'>'$num1 | bc -l
1
1回目のエコーと2回目のエコーの出力を期待していましたが、得られたのは10
回0
目と1
2回目のエコーでした。この入力に問題がありますか?これらの浮動小数点数を一貫して比較するにはどうすればよいですか?
ベストアンサー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