Lo que me gustaría es un método para convertir un doble en una cadena que se redondea utilizando el método de la mitad hacia arriba, es decir, si el decimal a redondear es 5, siempre se redondea al siguiente número. Este es el método estándar de redondeo que la mayoría de la gente espera en la mayoría de las situaciones.
También me gustaría que solo se muestren dígitos significativos, es decir, no debería haber ceros a la izquierda.
Sé que un método para hacer esto es usar el String.format
método:
String.format("%.5g%n", 0.912385);
devoluciones:
0.91239
lo cual es genial, sin embargo, siempre muestra números con 5 decimales, incluso si no son significativos:
String.format("%.5g%n", 0.912300);
devoluciones:
0.91230
Otro método es usar el DecimalFormatter
:
DecimalFormat df = new DecimalFormat("#.#####");
df.format(0.912385);
devoluciones:
0.91238
Sin embargo, como puede ver, esto usa redondeo a medias. Es decir, se redondeará hacia abajo si el dígito anterior es par. Lo que me gustaría es esto:
0.912385 -> 0.91239
0.912300 -> 0.9123
¿Cuál es la mejor manera de lograr esto en Java?