if文の小数点値の比較

if文の小数点値の比較

今日は2つの値を比較してみましたが、その結果に驚きました。私はどこでも良いアドバイスを見つけることができませんでした。誰でも助けることができますか?

if [ 10.94 -gt 10 ]
then
  echo True
else
  echo False
fi

結果が間違って驚きました。

その後、次のことを試しました。

if [[ 10.94 > 10 ]]

結果は本当です。私は大丈夫です。

以下のように、特定の条件下で私のスクリプトに再び欠陥があります。

if [[ 5.15 > 10 ]]
  echo True
fi

ここでの結果はTrueです。

どうですか?小数点値を正しい方法で比較するより良い方法はありますか?

ベストアンサー1

echo | awk '{if (10.1 > 10.0) {print "True"} else {print "False"} }' 
True

if [ $(echo "10.12 < 10.13"|bc -l) -eq 1 ];then echo "True"; else echo "False"; fi
True

おすすめ記事