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