這個問題在這里已經有了答案: bash:浮點運算是如何作業的? (2 個回答) 昨天關門。
我正在處理 bash 腳本:需要評估輸入,然后將結果輸出為 float *.xxx:
我愿意:
read var1
var2=$((var1))
#echo $var2
echo $((var1))
輸入:5 50*3/20 (19*2)/7
我的輸出是 17 但應該是 17.929
如何將其評估為浮點數?
uj5u.com熱心網友回復:
Bash只支持整數運算。
在您的情況下,您可以使用bc(1).
read var1
var2="$(bc <<<"scale=2;$var1")"
使用 scale 變數bc(1)設定有效位數(默認為 0)。
bc(1)會出現截斷錯誤(截斷發生在每一步)。
另一種選擇是使用calc(1)(如果它在您的系統上可用):
var2=$(calc -d "_=config(\"display\", 3);$var1")
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/509833.html
標籤:linux重击
上一篇:檢測空的json值
