Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/08/2012, 07:06
Avatar de chuidiang
chuidiang
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.
__________________
Apuntes Java
Wiki de Programación