【发布时间】:2019-07-09 03:57:26
【问题描述】:
我使用bc 进行简单的百分比计算。我要做的是以整数格式打印百分比,例如:
压缩比:72%
这是我正在做的事情:
echo "Compression ratio: $(bc <<< "scale=2; $output_size / $input_size * 100")%";
产生以下输出:
压缩比:72.00%
我知道问题的原因是scale=2。将其更改为 scale=0 会导致将 0.72 的 $output_size / $input_size 四舍五入为 0,然后再乘以 100,从而导致不希望的输出。
我试过这些,但没有用:
echo "Compression ratio: $(bc <<< "scale=2; $output_size / $input_size" * 100)%";
echo "Compression ratio: $((bc <<< "scale=2; $output_size / $input_size" * 100))%";
如何正确地将* 100 放在bc 之外?
【问题讨论】:
-
echo .72 | awk '{printf "%2.0f%%\n", 100 * $1}' -
echo .72 | awk '{print 100 * $1}' | xargs printf '%2.0f%%\n' -
echo .72 | tr -d . | xargs printf '%2.0f%%\n' -
@WilliamPursell 谢谢,他们解决了问题,除了我必须将
echo -n "Compression ratio:";放在单独的行上。