Mi piace la risposta di Randy Proctor. Qui in dettaglio:
Se si vuole fare vero e arrotondamento (vale a dire 3/2 -> 2, ma 17/7 -> 2) con gli interi> 0: uso (dividend + (divisor/2))/divisor
invece di dividend/divisor
.
Se il dividendo può essere un numero intero (vale a dire negativo consentito): (dividend >= 0) ? ((dividend + divisor/2)/divisor) : ((dividend - divisor/2)/divisor)
.
Se il dividendo è un numero intero e un divisore qualsiasi numero intero ma 0: (dividend >= 0) ? ((dividend + Math.abs(divisor)/2)/divisor) : ((dividend - Math.abs(divisor)/2)/divisor)
.
(Si noti che l'aggiunta e la sottrazione possono causare un avvolgente che altrimenti non si verificherebbe, rendendo il risultato non corretto.)
Grazie a tutti, –
Stai cercando solo arrotondamento di 0,5 in su? o arrotondamento di 0,3, ecc.? – jvenema
@jvenema: Esattamente - la maggior parte delle soluzioni proposte presuppone che qualsiasi valore superiore a 1.0 dovrebbe arrotondare a 2. Ad esempio, 7/3 è 2.333 ma arrotonderebbe a 3. Tuttavia, dato l'esempio dall'OP, non è chiaro se questo sia desiderato o no. – GalacticCowboy