2012-05-04 35 views
5

Come posso arrotondare a uno specifico multiplo in Java? In Excel esiste la funzione mround che facilita l'arrotondamento ad un multiplo specificato in questo modo:Arrotondamento di numeri a multipli specifici

mRound(variable,multiple) 

così mRound(x,3) ritornerebbe 9 se x = 7.9 e 6 se x = 7.2.

Tutte le funzioni di arrotondamento che ho trovato fino ad ora sempre intorno al numero intero più vicino o ad un numero specificato di cifre decimali, ma voglio essere in grado di cambiare il multiplo per ogni variabile. Qualcuno sa quale funzione sarebbe meglio per questa situazione?

+0

Nessuna funzione per questo. 'Mul * round (x/mul)'. –

risposta

14

Basta dividere per il numero, arrotondare e moltiplicare per il numero.

double mRound(double value, double factor) { 
    return Math.round(value/factor) * factor; 
} 
+0

Sì ... anche se sospetto sia "factor" che il valore restituito dovrebbero essere "int's". –

+0

@ X-Zero: Rendendo 'factor' a' double' è possibile utilizzare valori come '0.001' per arrotondare al millesimo più vicino. – Ryan

+0

Yay! E 'stato semplice! Sei fico! –

Problemi correlati