En Java, ¿cómo redondeo a un valor arbitrario? En concreto, quiero redondear a .0025 pasos, es decir:Java: valores redondos a arbitrarios
0,032611 -> 0,0325
0.034143 -> 0,0350
0.035233 -> 0,0350
0.037777 -> 0,0375
...
¿Alguna idea o libs?
En Java, ¿cómo redondeo a un valor arbitrario? En concreto, quiero redondear a .0025 pasos, es decir:Java: valores redondos a arbitrarios
0,032611 -> 0,0325
0.034143 -> 0,0350
0.035233 -> 0,0350
0.037777 -> 0,0375
...
¿Alguna idea o libs?
y = Math.round(x/0.0025) * 0.0025
Usted puede hacer esto:
double step = 0.0025;
double rounded = ((int)(unrounded/step + 0.5)) * step;
Creo que en java está llegando al mismo problema que en C++: fundir en int truncará los valores dobles grandes en los más pequeños. 1e300, por ejemplo, se convertirá en algo alrededor de 2e9. considere usar ceil/piso para evitar el mismo desorden que tuve hoy al responder una pregunta similar :) –
Ah sí, ahora lo entiendo, ¡muchas gracias! –
me votaron, pero supongo que esta fórmula no maneja el segundo caso, en el que el varas redondas es hacia arriba y no hacia abajo. –
Gracias por el aviso. Lo cambié a Math.round(). –
Funciona muy bien. Gracias. – kenoa