2012-05-04 47 views
5

¿Cómo puedo redondear a un múltiplo específico en Java? en Excel no es la función mround que permite una fácil redondeo a un múltiplo especificado de este modo:Redondeando números a múltiplos específicos

mRound(variable,multiple) 

por lo mRound(x,3) volvería 9 si x = 7.9 y 6 si x = 7.2.

Todas las funciones de redondeo que he encontrado hasta ahora siempre redondean al número entero más cercano o a un número específico de posiciones decimales, pero quiero poder cambiar el múltiplo para cada variable. ¿Alguien sabe qué función sería la mejor para esta situación?

+0

Ninguna función para eso. 'mul * round (x/mul)'. –

Respuesta

14

Simplemente divida por el número, redondee y multiplique por el número.

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

Sí ... aunque sospecho que tanto 'factor' como el valor de retorno deben ser' int's. –

+0

@ X-Zero: Hacer 'factor' a' double' hace posible usar valores como '0.001' para redondear a la milésima más cercana. – Ryan

+0

¡Yay! ¡Eso fue simple! ¡Eres genial! –

Cuestiones relacionadas