bash:除以零误差,除以仅显示整数答案



我正在为类编写一个简单的 bash 计算器并且几乎完成了它,但我遇到了两个问题:

  • 我正在使用 if/then 参数来尝试处理除以零错误。我继续从脚本的这一部分收到错误

  • 我使用 python 返回非整数,它适用于除法以外的所有操作。我不确定为什么这个特定的操作不起作用。

我已经查看了它在屏幕顶部给我的所有帖子,我还在谷歌上查询了site:stackoverflow.com以获取许多标签,但没有找到任何可以解决这些问题的方法。如果我在错误的论坛或已经得到回答 - 这是我第一次使用该网站 - 所以我提前道歉。

任何见解都将是最有帮助的。提前感谢!

以下是这些部分:

问题 1:如果命令返回错误,我将如何修复,以便在除以零时选择退出?

if [ $n3 -eq 4 $$ $n2 -eq 0 ]
then
echo "Oops, cannot divide by zero. Your answer is undefined."

如果

第一个问题结束。

问题2:下面的等式不输出非整数,(例如1除以3显示0,我希望它显示0.333或类似(,为什么?

4) 
quotient=$(python -c "print $n1/$n2")
echo "The quotient of $n1 and $n2 is $quotient"
;;

问题区域 2 结束。

*)          
echo "Invalid Option. Pick a number between 1-4 for your operator."
;;

埃萨克

对于您的条件,您在可能希望&&$$的地方使用了[ $n3 -eq 4 $$ $n2 -eq 0 ]。您可以执行以下操作之一:

[ "$n3" -eq 4 ] && [ "$n2" -eq 0 ] # POSIX 
[[ $n3 -eq 4 && $n2 -eq 0 ]]       # Bash specific

对于您的其他问题,请参阅为什么 Python 返回 0 进行简单的除法计算?。你可以做:

n1=1 n2=4
quotient=$(python -c "print $n1.0/$n2")  # Becomes "print 1.0/4"
echo "$quotient"                         # Shows 0.25

最新更新