shell计算的几种方法

  • 使用 expr 计算
sum=`expr a+b+c`
  • 使用 let 计算
let sum=a+b+c
  • 使用 bc 计算
echo "7+3*2" | bc

浮点数计算

bc 支持浮点数计算,但是我发现如果被除数是整数,则输出结果也是整数。对于 bc 可以使用 scale 定义精度

echo "scale=3; 1.55 * 1.55 " | bc -l

scale参数指定小数点后的保留位数

bc显示小数点前的0

在使用 bc 做计算的时候,会发现如果小数点前面是0的时候会不显示,解决的方法可以采用

res1=$(printf "%.2f" `echo "scale=2;1/3"|bc`)

printf 打印函数可以格式化输出小数点之前的0。

更为精确的方法是采用 awk

v1=$(echo 1 3 | awk '{ printf "%0.2f\n" ,$1/$2}')

参考

results matching ""

    No results matching ""