Shell浮點數運算

2021-08-25 20:08:56 字數 389 閱讀 6051

shell本身不支援浮點數運算,(())之類的數**算符只能進行整數運算。要想在shell中運算浮點數,只能借助於bc, awk或者perl。 如

a=0.1 b=0.2 c=$(echo "$a+$b" | bc -l)

或者perl -e "print stdout $a + $b;"

需要注意的是,如果數學表示式中有負數,則必須確保運算子(+ - * /)與其前後的表示式之間至少有一空格。如:

[bonn@bonn downloads]$ echo $a $b -0.1 -0.2 [bonn@bonn downloads]$ echo "$a - $b" | bc -l .1 [bonn@bonn downloads]$ perl -e "print stdout $a - $b;" 0.1

浮點數運算

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

浮點數運算

今天學習了浮點數運算 加減乘除 浮點數運算主要包括兩部分 指數運算和尾數運算。在ieee754標準下,指數運算就是階碼的運算,類似於無符號數運算。尾數運算是原碼運算。之前一直很疑惑為什麼前面的教材在介紹原碼運算 加減乘除 所舉的例子都是小數運算。現在猜想那部分內容可能只是為了浮點數運算做鋪墊,這裡才...

shell指令碼中浮點數運算

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