shell中的浮點數運算之bc命令簡介

2021-10-04 14:26:50 字數 972 閱讀 4888

在shell中,當我們進行浮點數的運算,特別是用於浮點數間的比較大小時,往往會出現一些問題,這裡使用bc命令,幫你解決困難

它的一般格式:

var=`echo "option1;option2;...;expression"|bc`
其中options部分一般設定精度scale,和變數賦值expression部分是計算表示式,最後將它們放在反引號中賦值給變數

例子如下:

lk@ubuntu:~$ y=`echo

"scale=2;x=5;x*x"

|bc`

lk@ubuntu:~$ echo

$y25

lk@ubuntu:~$

lk@ubuntu:~$ echo

"5 < 8 "

|bc1

lk@ubuntu:~$ echo

"5 < 8 "

|bc0

lk@ubuntu:~$

在shell指令碼的分支語句中使用bc比較浮點數大小:
#!/bin/bash

num=100

if[ $(

echo

"$ > 1000.95"

|bc)

-eq 1 ]

; then

echo $

else

echo no

fi

(上面指令碼中使用到的-eq是乙個運算子,表示判斷是否相等;前面bc命令的返回值是0或1,則之後用-eq進行判斷)

在linux中可以通過bc命令進行非常強大計算,功能強大難以想象,它也是linux中的計算器,這裡僅做簡單的介紹

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.對階 所謂對階...