1

Hola estoy haciendo un programa en JAVA para sacar calificaciones, pero al sacar el resultado sale mas digitos decimales de los que yo quiero, por ejemplo:

Resultado: 9.40001

Lo que yo quiero que se muestre es:

Resultado: 9.4

El float pone todos los digitos y supongo que debo de poner este es el codigo;

public void actionPerformed(ActionEvent e)
if(e.getSource() == sacaresultado){
float primerparcial = 0, segundoparcial = 0, tercerparcial = 0, resultado = 0;
     
primerparcial = Float.parseFloat(escribirprimer.getText());
segundoparcial = Float.parseFloat(escribirsegundo.getText());
tercerparcial = Float.parseFloat(escribirtercero.getText());
     
resultado = (primerparcial + segundoparcial + tercerparcial) / 3;
     
resultadodelabeca.setText("resultado: " + resultado);
}
}
Oscar
  • 11
  • 2
  • 1
    Mira [ask] para que tu pregunta sea mejor recibida. También, aprovecha y haz el [tour] para entender mejor cómo funcionamos y de paso obtener tu primera [medalla](https://es.stackoverflow.com/help/badges)! debes pasarle un formato numerico a la cadena de salida ;) – gbianchi May 03 '21 at 17:31
  • Probablemente se podría marcar como duplicada de [esta pregunta](https://es.stackoverflow.com/questions/29408/como-limitar-la-cantidad-de-decimales-de-un-double) – Eduardo Jiménez May 03 '21 at 19:31
  • 2
    ¿Responde esto a tu pregunta? [¿Como limitar la cantidad de decimales de un double?](https://es.stackoverflow.com/questions/29408/como-limitar-la-cantidad-de-decimales-de-un-double) – Eduardo Jiménez May 03 '21 at 19:33
  • 1
    ¿Responde esto a tu pregunta? [¿Por qué mis programas no pueden hacer cálculos aritméticos correctamente?](https://es.stackoverflow.com/questions/197/por-qu%c3%a9-mis-programas-no-pueden-hacer-c%c3%a1lculos-aritm%c3%a9ticos-correctamente) – padaleiana May 03 '21 at 20:19

1 Answers1

0
String r = String.format("%.1f", resultado).replace(",", ".");

luego imprimes r el cual será 9.4

el 1 numero de %.1f es la cantidad de dígitos después de la coma, y el replace es porque el string queda con una coma y no con el punto decimal

y si necesitas volverlo float de nuevo entonces parsealo

float resultadoNuevo = Float.parseFloat(r);

y seguirá teniendo el 9.4

sanbope
  • 26
  • 5