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

Porque no admite punto en double

Estas en el tema de Porque no admite punto en double en el foro de Java en Foros del Web. tengo este codigo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código java: Ver original package conversion ;   import java.util.Scanner ;   public class recibe {       double ...
  #1 (permalink)  
Antiguo 20/02/2013, 15:16
Avatar de andres_15_  
Fecha de Ingreso: septiembre-2008
Ubicación: Cali
Mensajes: 232
Antigüedad: 15 años, 7 meses
Puntos: 7
Porque no admite punto en double

tengo este codigo

Código java:
Ver original
  1. package conversion;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class recibe {
  6.  
  7.     double e= 1.3349;// aqui si lo admite, cabe decir que este es la subclase
  8.     double e1f;
  9.     double convert;
  10.  
  11.     double conversor() {
  12.  
  13.         System.out.println("Ingrese la cantidad de euros a cambiar a dolares delimitados por comas (,): ");
  14.  
  15.         Scanner recibir = new Scanner(System.in);
  16.  
  17.         e1f = recibir.nextDouble();
  18.        
  19.         convert=e1f*e;
  20.  
  21.         System.out.println("el cambio de € a Dolar es: " + convert+" dolares ");
  22.         return e1f;
  23.     }
  24. }

estas es la main o clase principal

Código java:
Ver original
  1. package conversion;
  2.  
  3. /**
  4.  *
  5.  * @author andres
  6.  */
  7. public class Conversion {
  8.  
  9.     /**
  10.      * @param args the command line arguments
  11.          */
  12.     public static void main(String[] args) {
  13.         recibe cambio= new recibe();
  14.        
  15.         cambio.conversor();
  16.     }
  17. }

y en pantalla me sale esto :

run:
Ingrese la cantidad de euros a cambiar a dolares delimitados por comas (,):
5,8
el cambio de € a Dolar es: 7.742419999999999 dolares
BUILD SUCCESSFUL (total time: 4 seconds)

pero si en vez de 5,8, coloco 5.8 (notese el punto) y me arroja este error:

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 conversion.recibe.conversor(recibe.java:21)
at conversion.Conversion.main(Conversion.java:19)
Java Result: 1
  #2 (permalink)  
Antiguo 20/02/2013, 16:15
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Porque no admite punto en double

nextDouble() usa los puntos decimales y separadores de miles propios del idioma. En español el punto es separador de miles y la coma es los decimales.

Si quieres cambiarlo, a la clase Scanner llama al método useLocale() y pásale un Locale inglés, creo que sería algo como esto

Código java:
Ver original
  1. recibir.useLocale(Locale.ENGLISH)

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: admite, clase, double, punto
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 02:51.