Foros del Web » Programación para mayores de 30 ;) » Java »

Duda con nextDouble()

Estas en el tema de Duda con nextDouble() en el foro de Java en Foros del Web. Hola! soy novato con java y compilando algunos codigos me surgio un problema. Tengo una clase Cuenta y otra PruebaCuenta, compila perfectamente el problema es ...
  #1 (permalink)  
Antiguo 15/01/2012, 10:40
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 11 meses
Puntos: 94
Duda con nextDouble()

Hola! soy novato con java y compilando algunos codigos me surgio un problema. Tengo una clase Cuenta y otra PruebaCuenta, compila perfectamente el problema es cuando lo ejecuto.

-------------------------
Cuenta cuenta1 = new Cuenta(50.00);

Scanner entrada = new Scanner(System.in);
double montoDeposito;

System.out.print("Escriba el monto a depositar para cuenta1: ");
montoDeposito = entrada.nextDouble();
System.out.printf("Sumando %.2f al saldo de cuenta1\n\n");
cuenta1.abonar(montoDeposito); // suma al saldo de cuenta1

-------------------

Por consola me pide que ingrese un monto pero cuando ingreso me sale un error:

Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:840)
at java.util.Scanner.next(Scanner.java:1461)
at java.util.Scanner.nextDouble(Scanner.java:2387)
at PruebaCuenta.main(PruebaCuenta.java:21)


No se cual es el problema, espero me puedan ayudar.

Saludos
  #2 (permalink)  
Antiguo 15/01/2012, 11:20
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 8 meses
Puntos: 71
Respuesta: Duda con nextDouble()

La excepción que obtiene se debe a que el número ingresado no cumple con el patrón que se maneja para el tipo de dato. Esto es casi seguro que los números los introduce usando el punto decimal (como es costumbre en ciertos paises), cuando se debe de hacer usando la coma decimal si desea usar el método nextDouble.

Puede intentar lo siguiente para salvar su problema, cambiando su linea de lectura por (puede que haya otra mejor).
Código Java:
Ver original
  1. montoDeposito = Double.parseDouble(entrada.nextLine());

Ojo: Use por favor el Highligth para resaltar su código.
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%

Última edición por CapacProg; 15/01/2012 a las 11:25
  #3 (permalink)  
Antiguo 15/01/2012, 13:20
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 11 meses
Puntos: 94
Respuesta: Duda con nextDouble()

Hola gracias por responder rapido no sabia que tenia que usar la "," tambien probe con el metodo que me pasaste y si! pude usar el "." decimal .. Ademas tenia otro error que no me habia dado cuenta cuando puse
System.out.printf("Sumando %.2f al saldo de cuenta1\n\n")

me faltaba pasarle el argumento para %.2f

Gracias, saludos
  #4 (permalink)  
Antiguo 15/01/2012, 13:42
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 8 meses
Puntos: 71
Respuesta: Duda con nextDouble()

Ok, no hay problema y siempre trate de revisar la documentación primero.
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%
  #5 (permalink)  
Antiguo 16/01/2012, 13:35
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 11 meses
Puntos: 94
Respuesta: Duda con nextDouble()

Una pregunta cuando decis revisar la documentacion te referis a buscar las APIs de java en la pagina de Oracle??? si es asi estuve viendo un poco pero no encontre la clase Scanner

Saludos
  #6 (permalink)  
Antiguo 16/01/2012, 13:44
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: Duda con nextDouble()

Cita:
Iniciado por cesar_casla Ver Mensaje
Una pregunta cuando decis revisar la documentacion te referis a buscar las APIs de java en la pagina de Oracle??? si es asi estuve viendo un poco pero no encontre la clase Scanner

Saludos
Yo para encontrar las clases rápidamente pongo "Java {nombre-clase}"

O sino pones el nombre completo de la clase con todo y paquete, en este caso: java.util.Scanner

Siempre me funciona así. :)

Un saludo
  #7 (permalink)  
Antiguo 16/01/2012, 14:07
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 11 meses
Puntos: 94
Respuesta: Duda con nextDouble()

Hola! si es verdad como decis :) igual estuve revisando mejor la pagina de Oracle y ya entendi como buscar ^^ lastima que se poco ingles :S

Saludos

Etiquetas: clase
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:19.