我想将该值与 0 进行比较,结果显示该值小于 0。我使用了
solution=`echo $a / $b | bc -l`
仅当“a”小于“b”时才会出现此问题。
答案1
a=1
b=3
printf -v solution "%.2f" $(bc -l <<< "$a / $b")
echo $solution
输出:
0.33
如果 $a 和 $b 始终是整数,并且你正在寻找仅使用 bash 的解决方案来除以两个整数:那么你可能会感兴趣这。
答案2
bc
不会打印前导零。您可以通过管道将其打印到
awk '{printf "%0.2f", $1}'
总结一下:
solution=$(echo 1 / 3 | bc -l | awk '{printf "%0.2f", $1}')
echo $solution
答案3
和printf
:
$ printf '%f' $(echo $a / $b | bc -l)
0.200000
如果您只希望小数点后有 1 位:
$ printf '%.1f' $(echo $a / $b | bc -l)
0.2
答案4
或者你可以只使用 perl:
$ export a=1 b=3; perl -e 'printf("'%.2f'\n", $ENV{a}/$ENV{b});'
0.33
对于您的脚本:
solution=$(export a=1 b=3; perl -e 'printf("'%.2f'\n", $ENV{a}/$ENV{b});')
echo "$solution"