1

我的语法有问题,我想以十进制输出两个数字的除法,但是如果我输入 4 和 5,当我除以所有其他数字时,我的输出是 0 而不是 0.8。

case $ch in
  1)sum=`expr $n1 + $n2`
   echo "Sum ="$sum;;
  2)sum=`expr $n1 - $n2`
    echo "Sub = "$sum;;
  3)sum=`expr $n1 \* $n2`
    echo "Mul = "$sum;;
  4)sum=`expr $n1 / $n2`
    echo "Div = "$sum;;
  *)echo "Invalid choice";;
esac
4

2 回答 2

2

Expr 只实现整数运算。考虑使用其他东西,比如dc

于 2012-05-03T11:00:52.357 回答
2

使用bc.

sum=`echo -e "scale=5\n$n1/$n2" | bc`

您的部门将0.8为此付出代价。

于 2012-05-03T11:02:47.347 回答