Java: Problema newbie

Wasd

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.

dagavi

#1 Para poner la separación decimal usa la coma:

3,2

1 respuesta
Wasd

#2 OMG, tienes razón. Pero estoy 99% seguro de que ayer usé el punto para separar los decimales... y en el tuto que veo, lo separa por puntos (lo estoy aprendiendo en inglés, así que quizás esté relacionado con su sistema numérico o algo, no lo se).
Muchas gracias... pero entonces... por qué ayer sí, y hoy no? :S:S:S El programa sigue estando en inglés (Eclipse).

1 respuesta
dagavi

#3 La separación que usa Scanner, según su documentación (http://download.oracle.com/javase/6/docs/api/java/util/Scanner.html ), depende del Locale que esté haciendo servir, si estabas en otro lado tal vez puede que haya cambiado, si lo has repetido igual que ayer (mismo entorno) entonces es raro xD

MTX_Anubis

#1 ya que estás aprendiendo http://www.odi.ch/prog/design/newbies.php que nunca viene mal.

1 respuesta
Wasd

#5 Ahhh muchas gracias. Tendré que romperme el coco con tanto inglés, ya que lo manejo, pero no a esos niveles xD.
Me lo miraré mucho, thanks again.

Usuarios habituales

  • Wasd
  • MTX_Anubis
  • dagavi