ayuda "InputMismatchException" al usar una variable tipo double

Iniciado por Diegofercho, 8 Mayo 2015, 04:25 AM

0 Miembros y 1 Visitante están viendo este tema.

Diegofercho

Amigos este es mi primer post, bueno quiero pedirles ayuda y que me guíen un poco, estoy declarando una variable tipo double y al pedir el ingreso por teclado si yo  digito un numero entero no hay problema, me lo lee y lo imprime pero si digito un numero con decimal, ejmp: 6.4 ahi me bota una excepcion, pero no entiendo que estoy haciendo mal, ayuda por favor, les adunto el codigo que programé.

package ingresodecimales;

import java.util.Scanner;


public class IngresoDecimales {

 
    public static void main(String[] args) {
      Scanner lec= new Scanner(System.in);
       
        double decimal;
        System.out.println("ingrese un numero con decimal");
        decimal= lec.nextDouble();
        System.out.println("el decimal es "+ decimal);
    }
   
}


y aqui el error:


ingrese un numero con decimal
3.2
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.nextDouble(Scanner.java:2456)
at ingresodecimales.IngresoDecimales.main(IngresoDecimales.java:25)
Java Result: 1

Lind L. Tailor

Hola...

Ejecute tu código tal y como lo tienes, y no tengo inconveniente alguno, todo corre perfectamente, lo cual nos indica que el error no se encuentra en donde tu lo mencionas, y a juzgar por la excepción estas en la línea equivocada ya que podemos observar que lo tienes en la línea 25: at ingresodecimales.IngresoDecimales.main(IngresoDecimales.java:25)...

Código (java) [Seleccionar]

ingrese un numero con decimal
3.2
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.nextDouble(Scanner.java:2456)
at ingresodecimales.IngresoDecimales.main(IngresoDecimales.java:25)
Java Result: 1


Por lo tanto, posiblemente tienes algún otro método después de ello la cual te genera el error, ahora bien también existe la posibilidad de que no estas ingresando el separador correcto; es decir, que en vez de un punto estas ingresando una coma, lo cual nos lanza la excepción que tu efectivamente mencionas.

Sin mas que comentar, cualquier duda y/o inconveniente, aquí estamos. Suerte!

PabloPbl

#2
Hola amigo, nose por que pueda estar pasando, tendría que googlear un poco jeje, pero lo he hecho de esta forma, y funciona perfectamente:

Código (java) [Seleccionar]

import java.util.Scanner;


public class IngresoDecimales {

 
   public static void main(String[] args) {
     Scanner lec= new Scanner(System.in);
       
       double decimal;
       System.out.println("ingrese un numero con decimal");
       decimal= Double.parseDouble(lec.nextLine());
       System.out.println("el decimal es "+ decimal);
   }
   
}


Lo que hice fue:
El String que lee el Scanner, lo convertí a Double, y luego lo imprimí.

Menos mal que Java tiene muchas funciones útiles jeje.

Un saludo!

daryo

ambos codigos funciona sin problemas
lo probe en :
http://www.tutorialspoint.com/compile_java_online.php

sera cosa de la maquina donde se esta ejecutando o una mala configuracion de java
buenas