Awk

比較浮點數時輸出錯誤

  • May 22, 2016

我正在嘗試比較 bash 中的兩個浮點數,但出了點問題。這是基於解決方案here的程式碼範例

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

我期望1第一個迴聲和0第二個迴聲的輸出,但我得到0的是第一個和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

引用自:https://unix.stackexchange.com/questions/284680