Veréis, estoy aprendiendo las bases mas básicas de java.
Hoy, repasando los tutoriales que hice ayer (desde instalar jdk y eclipse hasta hacer una calculadora muy simple) me encuentro que teniendo este código:
import java.util.Scanner;
public class Calc{
public static void main (String args[]){
Scanner Dac = new Scanner(System.in);
double fnum, snum, answer;
System.out.println("Introducir primer número: ");
fnum = Dac.nextDouble();
System.out.println("Introducir segundo número: ");
snum = Dac.nextDouble();
answer = fnum + snum;
System.out.println("Esta es la solución");
System.out.println(answer);
}
}
Si utilizo números enteros, todo funciona bien:
Introducir primer número:
2
Introducir segundo número:
2
Esta es la solución
4.0
Sin embargo, si utilizo números con decimales:
Introducir primer número:
2.13
Me aparece este mensaje de error:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextDouble(Unknown Source)
at Calc.main(Calc.java:8)
El caso es que he escrito y reescrito el código 3 veces cambiando la clase y me ocurre todo el rato lo mismo, mientras que ayer iba todo bien.
Alguien podría decirme por qué ocurre? Según tengo entendido, "double" se usa para numeros con decimales, e "int" para numeros enteros. ¿Qué falla?
Gracias, y un saludo.