Estoy tratando con muchos valores dobles en mi aplicación, ¿hay alguna manera fácil de manejar el formato de valores decimales en Java?
¿Hay alguna otra manera mejor de hacerlo que
DecimalFormat df = new DecimalFormat("#.##");Lo que quiero hacer básicamente es formatear valores dobles como
23.59004 to 23.59 35.7 to 35.70 3.0 to 3.00 9 to 9.00No, no hay mejor manera.
En realidad tienes un error en tu patrón. Lo que quieres es:
DecimalFormat df = new DecimalFormat("#.00"); Tenga en cuenta el "00" , que significa exactamente dos lugares decimales.
Si usa "#.##" ( # significa dígito "opcional"), eliminará los ceros finales, es decir, new DecimalFormat("#.##").format(3.0d); imprime solo "3" , no "3.00" .
Una alternativa es usar String.format :
double[] arr = { 23.59004, 35.7, 3.0, 9 }; for ( double dub : arr ) { System.out.println( String.format( "%.2f", dub ) ); }producción:
23.59 35.70 3.00 9.00 También puede usar System.out.format (firma del mismo método) o crear un java.util.Formatter que funcione de la misma manera.