Per eseguire l'arrotondamento nel troncamento aritmetico, aggiungi semplicemente (denom-1)
al numeratore.
Esempio, arrotondamento per difetto:
N/2
M/5
K/16
Esempio, arrotondamento per eccesso:
(N+1)/2
(M+4)/5
(K+15)/16
Per arrotondare al più vicino, aggiungi (denom/2)
al numeratore (le metà verranno arrotondate per eccesso):
(N+1)/2
(M+2)/5
(K+8)/16
Una buona soluzione è ottenere che il numero di round più vicino sia
var=2.5
echo $var | awk '{print int($1+0.5)}'
La logica è semplice se il valore decimale var è inferiore a 0,5, quindi il valore più vicino preso è il valore intero. Ebbene, se il valore decimale è maggiore di 0,5, viene aggiunto il valore intero successivo e poiché awk prende solo la parte intera. Problema risolto