我需要计算 bash 脚本中 2 个数字之间的增加/减少百分比,我需要在 2 位小数之后。数字将有许多小数(例如。 684.0800000, 683.7550000). 我已经看到bc可以做到这一点,但我无法让它工作。
$ echo 684.0800000 683.7550000 | awk '{printf "%.2f%n", 100*($2/$1-1)}'
-0.05%
也就是说0.05%
从第一位减少到第二位,-0.0475
四舍五入到小数点后两位。
使用 bcscale
变量确定精度
x=684.0800000
y=683.7550000
echo "scale=2; 100 * ($y - $x) / $x" | bc
-.04
使用bc
和格式化输出与printf
:
$ a=684.0800000
$ b=683.7550000
$ printf '%.2fn' $(echo "100*$b/$a-100" | bc -l)
-0.05
具有更多可消化的值:
$ a=5
$ b=2
$ printf '%.2fn' $(echo "100*$b/$a-100" | bc -l)
-60.00