Как был бы я вокруг результата двух разделенных чисел, например.
3/2
Как тогда, когда я делаю
testOne=$((3/2))
$testOne содержит "1", когда он должен был окружить к "2" как ответ от 3/2=1.5
Чтобы выполнить округление в арифметике с усечением, просто добавьте (denom-1)
к числителю.
Пример округления в меньшую сторону:
N/2
M/5
K/16
Пример округления в большую сторону:
(N+1)/2
(M+4)/5
(K+15)/16
Чтобы выполнить округление до ближайшего, добавьте (denom / 2)
в числитель (половинки округляются в большую сторону):
(N+1)/2
(M+2)/5
(K+8)/16
bash не даст вам правильный результат 3/2, так как он не делает математику с плавающей точкой. вы можете использовать такие инструменты как awk
$ awk 'BEGIN { rounded = sprintf("%.0f", 3/2); print rounded }'
2
или bc
$ printf "%.0f" $(echo "scale=2;3/2" | bc)
2