浮点数运算
法一:
#!/bash
for((i=1;i<=10;i++))
do
echo $i
j=$(echo "$i*0.2-2.5"|bc)
echo $j
done
法二:
#!/bash
for((i=1;i<=10;i++))
do
echo $i
j=`bc <<< "0.2*(${i}-1)-2.5"`
echo $j
done
shell 包含三个命令:bc、expr、let可用于数值计算。
输入:整数,let和expr都无法进行浮点运算,但是bc和awk可以。
输出:bc、expr可直接显示计算结果;let则丢弃计算结果,可通过传递结果到变量,取变量值获得计算结果。
法三:
$ echo "scale=3; 1/13" | bc
.076
$ echo "1 13" | awk '{printf("%0.3f\n",$1/$2)}'
0.077
scale用来控制小数点后面保留的位数,默认为0
由于实际使用时发现bc命令会把整数位的0给删去,例如:
输入:echo "0.001 + 0.002"|bc 输入:.003
所以我自己选择了awk的方法
浮点数比较
#!/bin/bash a=7.2 b=8 if [ `echo "$a < $b"|bc` -eq 1 ] ; then echo "$a < $b " else echo "$a > $b " fi
参考资料: