Saludos a tod@s.
Me pasa algo que no soy capaz de entender.
package javaya2.pkg1;
import java.util.Scanner;
/**
* Hallar la superficie de un cuadrado conociendo el valor de un lado.
* @author droigor
*/
public class Javaya21 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
//Declaraciones
float lado;
float superficie;
Scanner sc = new Scanner(System.in);
//Proceso
System.out.println("Introduzca el lado del cuadrado:");
lado = sc.nextFloat();
//Resultado
superficie = lado * lado;
System.out.println("La superficie del cuadrado de lado "
+lado+" es de "+superficie);
}
}
Ejecuto el programa, introduzco cualquier número que no sea un entero y me pasa esto :
run:
Introduzca el lado del cuadrado:
2.0
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextFloat(Scanner.java:2388)
at javaya2.pkg1.Javaya21.main(Javaya21.java:29)
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)
Soy un melón o le pasa algo a mi IDE?
Gracias.
Scanner es demasiado listo. Usa una coma decimal en vez de un punto.
Usa el punto como separador de miles, un 2.000 no te da error, porque lo considera como 2000
Puedes cambiar el comportamiento con sc.useLocale(....);
Se bueno.
¡Vaya!
Pues sí que es listo Scanner sí.
Gracias por la respuesta y un saludo.