我该怎么做才能将“.33”值更改为“0.33”?

我该怎么做才能将“.33”值更改为“0.33”?

我想将该值与 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"

相关内容