Мне нужно рассчитать процентное увеличение / уменьшение между 2 числами в скрипте bash, и мне нужно после 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 округляется до двух десятичных знаков.
0.05%
-0.0475
Использование bc и форматирование вывода с помощью printf:
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
Используйте переменную bc scale, чтобы определить точность
scale
x=684.0800000 y=683.7550000 echo "scale=2; 100 * ($y - $x) / $x" | bc
-.04