我試著比較 bash 中的兩個浮點數,但出了問題。這是基於解決方案的程式碼範例這裡
num1=0.502E-01
num2=0.01
echo $num1'>'$num2 | bc -l
echo $num2'>'$num1 | bc -l
1
我期望第一個迴聲和0
第二個迴聲的輸出,但我得到的0
是第一個和1
第二個迴聲。這個輸入有什麼問題嗎?如何得到這些浮點數的一致比較?
答案1
awk
如果從 shell 腳本調用,當然可以進行浮點比較。
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