Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/08/2012, 05:26
Avatar de fpalomar
fpalomar
 
Fecha de Ingreso: noviembre-2003
Mensajes: 123
Antigüedad: 20 años, 5 meses
Puntos: 3
Limitar el número de decimales en un float

Hola,

Estoy interesado en saber como limitar el número de decimales en un float por que creo que tal y como lo estoy haciendo no es correcto.

A continuación pongo el código:

Código:
public float getAverage (List<Integer> pointsList){
	/* patron de formateo de dos decimales */

	NumberFormat nf = NumberFormat.getInstance();		
        nf.setMaximumFractionDigits(2);
		
	float total=0;
	float calc=0;
	for(Iterator<Integer> iter=pointsList.iterator();iter.hasNext();){
		calc = calc + iter.next();
	}
	total = (calc/pointsList.size()); 
				
	String x = (nf.format(total));
	total = Float.parseFloat(x);
				
	return total;
}
Como vereís el método recibe un List de puntuaciones y devuelve la media.
Al ejecutarlo se ve por pantalla que hace una "conversión" del punto decimal a
la coma, no se si eso esta implícito en el uso de Numberformat.

Como el String x recibe una coma en lugar del punto decimal al hacer el
Float.parseFloat(x) me da el error :

Exception in thread "main" java.lang.NumberFormatException: For input string: "8,83"
at sun.misc.FloatingDecimal.readJavaFormatString(Unkn own Source)
at java.lang.Float.parseFloat(Unknown Source)

at Exercici_3.Competition.getAverage(Competition.java:62)
at Exercici_3.Competition.main(Competition.java:29)

Saludos