shell中的浮點數運算以及比較大小

2022-05-05 07:15:15 字數 831 閱讀 9058

#!/bash

for((i=1;i<=10;i++))

doecho $i

j=$(echo "$i*0.2-2.5"|bc)

echo $j

done

#!/bash

for((i=1;i<=10;i++))

doecho $i

j=`bc <<< "0.2*($-1)-2.5"`

echo $j

done

shell 包含三個命令:bc、expr、let可用於數值計算。

輸入:整數,let和expr都無法進行浮點運算,但是bc和awk可以。

輸出:bc、expr可直接顯示計算結果;let則丟棄計算結果,可通過傳遞結果到變數,取變數值獲得計算結果。

$ echo "scale=3; 1/13"  | bc

.076

$ echo "1 13" | awk ''

0.077

scale用來控制小數點後面保留的位數,預設為0

由於實際使用時發現bc命令會把整數字的0給刪去,例如:

輸入:echo "0.001 + 0.002"|bc

輸入:.003

所以我自己選擇了awk的方法

#!/bin/bash

a=7.2

b=8if [ `echo

"$a < $b

"|bc` -eq 1 ] ; then

echo

"$a < $b

"else

echo

"$a > $b

"fi

Shell浮點數運算

shell本身不支援浮點數運算,之類的數 算符只能進行整數運算。要想在shell中運算浮點數,只能借助於bc,awk或者perl。如 a 0.1 b 0.2 c echo a b bc l 或者perl e print stdout a b 需要注意的是,如果數學表示式中有負數,則必須確保運算子 與...

shell指令碼中浮點數運算

a 1 b 2result printf 2f echo scale 2 a b bc echo result 輸出結果 0.50參考 shell指令碼中浮點數運算 最近寫了個shell指令碼,檢視運算結果時發現,結果值沒有小數點。怎麼回事?原來shell中的運算都是整數運算。那怎麼把小數點搞出來,...

浮點數運算

浮點數運算的公式 n m re n代表浮點數 m代表尾數 r代表基數 e代表指數 所謂浮點數就是類似我們高中學的科學計數法 比如 1000 就表示為 1.0 103 那麼浮點型計算就是兩個用科學計數法表示的數之間進行的計算 例如 1.0 102 1.19 103 該如何計算 步驟 1.對階 所謂對階...