рассчитать процентное увеличение / уменьшение между 2 числами с большим количеством десятичных знаков в bash - PullRequest
0 голосов
/ 17 мая 2018

Мне нужно рассчитать процентное увеличение / уменьшение между 2 числами в скрипте bash, и мне нужно после 2 десятичных знаков.Числа будут иметь много десятичных знаков (например, 684.0800000, 683.7550000).Я видел, что bc может это сделать, но я не могу заставить его работать. С уважением

Ответы [ 3 ]

0 голосов
/ 17 мая 2018
$ echo 684.0800000 683.7550000 | awk '{printf "%.2f%\n", 100*($2/$1-1)}'

-0.05%

, то есть 0.05% уменьшается от первой к второй, то есть -0.0475 округляется до двух десятичных знаков.

0 голосов
/ 18 мая 2018

Использование 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
0 голосов
/ 17 мая 2018

Используйте переменную bc scale, чтобы определить точность

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