Shell 脚本浮点运算

来源:伯乐在线 - answer

链接:http://blog.jobbole.com/105409/

点击 → 了解如何加入专栏作者

 

本文将介绍几种Linux下通过Shell脚本进行浮点数计算的方法。

Why

 

Bash Shell本身不具备处理浮点计算的能力, 如expr命令只支持整数运算 :

 

#!/bin/bash

a=59

b=60

expr $a / $b

 

运行结果 :

 

$ ./cal.sh

0

$

 

Plan A

 

使用bc进行处理。
代码 :

 

#!/bin/bash

 

a=59

b=60

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

 

运行结果 :

 

 

$ ./bc.sh

.9833

$

 

scale表示结果的小数精度。

Plan B

 

使用awk进行处理。
代码 :

 

 

#!/bin/bash

a=59

b=60

awk 'BEGIN{printf "%.2f\n",('$a'/'$b')}'

 

运行结果 :

 

 

$ ./awk.sh

0.98

$

 

Compare

 

使用bc :

 

使用awk :

 

可以看出使用awk的效率更高,特别是运算次数比较大时。

  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓