计算两个数字之间的增加/减少百分比,bash中有多个小数

时间:2018-05-17 20:33:36

标签: bash math percentage bc

我需要计算bash脚本中2个数字之间的增加/减少百分比,之后需要2位小数。这些数字将包含许多小数(例如,684.0800000,683.7550000)。 我见过bc可以做到这一点,但我无法让它工作。亲切的问候

3 个答案:

答案 0 :(得分:2)

$ echo 684.0800000 683.7550000 | awk '{printf "%.2f%\n", 100*($2/$1-1)}'

-0.05%

0.05%从第一个减少到第二个,即-0.0475四舍五入到两个小数点。

答案 1 :(得分:0)

使用bc scale变量来确定精度

x=684.0800000
y=683.7550000
echo "scale=2; 100 * ($y - $x) / $x" | bc
-.04

答案 2 :(得分:0)

使用bc并使用printf格式化输出:

$ a=684.0800000
$ b=683.7550000
$ printf '%.2f\n' $(echo "100*$b/$a-100" | bc -l)
-0.05

具有更多可消化的值:

$ a=5
$ b=2
$ printf '%.2f\n' $(echo "100*$b/$a-100" | bc -l)
-60.00