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