11/08/2012, 07:06
|
| Colaborador | | Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes Puntos: 454 | |
Respuesta: Limitar el número de decimales en un float Hola:
Float.parseFloat() usa el punto como separador decimal, así que puedes cambiarlo en el String antes de intentar usar parseFloat : x.replaceAll(",",".") y así no tendrás problemas.
Otra opción es que NumberFormat usa como separador de decimales (y de miles) el propio del idioma en el que esté tu sistema operativo. Así que basta usar NumberFormat tanto en un sentido (de float a String), como en el contrario (de String a float). nf.parse(x).floatValue(). Esto no debería darte problemas.
En cualquier caso, es mejor dejar que el float tenga todos los decimales que quiera y limitarlos sólo a la hora de escribir en pantalla. Si limitas el float, por ejemplo a que tenga 0.12, quizás al sacarlo por pantalla con un System.out se "empeñe" en sacártelo como 0.1199999999 o 0.120000001 (cosas de los float). Ahí sí, usa el NumberFormat pero sólo para formatear la salida en pantalla, o echa un ojo a System.out.printf(), que admite formatos como C/C++ y con algo como System.out.printf("%5.2f", unFloat) tendrás un float de 5 cifras con 2 decimales.
Se bueno. |