Shell指令碼浮點運算

2021-07-22 12:29:09 字數 1012 閱讀 7403

本文將介紹幾種linux下通過shell指令碼進行浮點數計算的方法。

bash shell本身不具備處理浮點計算的能力, 如expr命令只支援整數運算 :

#!/bin/bash

a=59

b=60

expr $a / $b

執行結果 :

$ ./cal.sh

0$

使用bc進行處理。

** :

#!/bin/bash

a=59

b=60

echo

"scale=4; $a / $b" | bc

執行結果 :

$ ./bc.sh

.9833

$

scale表示結果的小數精度。

使用awk進行處理。

** :

#!/bin/bash

a=59

b=60

awk 'begin'

執行結果 :

$ ./awk.sh

0.98

$

使用bc :

使用awk :

可以看出使用awk的效率更高,特別是運算次數比較大時。

- github:answerywj

- blog:

- email:[email protected]

- weibo:@answer不是答案

- csdn:answer不是答案的專欄

本作品採用知識共享署名-相同方式共享 4.0 國際許可協議進行許可。

shell指令碼中浮點數運算

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

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中用bc進行浮點運算

bash 不能處理浮點運算,並且缺乏特定的一些操作,這些操作都是一些重要的計算功能.幸運的是,bc 可以解決這個問題.bc不僅僅是個多功能靈活的精確的工具,而且它還提供許多程式語言才具備的一些方便的功能.因為它是乙個完整的 unix 工具,所以它可以用在管道 中,bc在指令碼中也是很常用的.這裡有乙...