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

A donde he llegado

Estas en el tema de A donde he llegado en el foro de Java en Foros del Web. Buenos días, No sé si es que hoy estoy un poco dormido o que, pero estoy pasando un String a Double y soy incapaz. El ...
  #1 (permalink)  
Antiguo 29/05/2012, 02:08
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 2 meses
Puntos: 14
A donde he llegado

Buenos días,

No sé si es que hoy estoy un poco dormido o que, pero estoy pasando un String a Double y soy incapaz.

El String contiene 1,29 ó 12,67...

Cuando lo convierto lo hago con:

Double.parseDouble(fila[1].toString());

Y la salida de error que me produce es:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "1,29"

Llevo haciendo pasos de String a Double de siempre y es la primera vez que me está fallando.

¿Alguién sabe qué es lo que está pasando?

He pensado que era la coma, pero no es...
__________________
Aprendiendo un poco de Java :D
  #2 (permalink)  
Antiguo 29/05/2012, 02:16
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: A donde he llegado

Con la coma no te debería funcionar, pero de todas formas ¿qué tipo de objeto es fila[1]? Ten en cuenta que con toString(), normalmente obtienes el identificador del objeto, no su contenido.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 29/05/2012, 02:32
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 2 meses
Puntos: 14
Respuesta: A donde he llegado

Fila es un Array de Objetos --> Object [] fila;
fila = new Object [f];

Cojo el valor de Fila[1] , paso de object a String con .toString()

Luego, paso con el wrapper de Double con Double.parseDouble(cadenaDeAntes);

Fila[1] tiene el valor 1,29

Lo que hago: Cojo object 1,29, lo parseo a String "1,29" y luego a Double --> Error, Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "1,29"


Un saludo y gracias por la respuesta.
__________________
Aprendiendo un poco de Java :D
  #4 (permalink)  
Antiguo 29/05/2012, 04:04
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: A donde he llegado

Prueba a construir el Double a partir del String
String stringVal = 19,78;
Double d = new Double(stringVal);

Si te sigue dando el mismo problema yo que tú me plantearía hacer un replace de la coma por el punto, sobre todo si quieres hacer double.parseDouble()

Luego habría que revisar que va bien en equipos que tengan diferente Locale.

:S Ainss los formatos numéricos que latita daaan
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #5 (permalink)  
Antiguo 29/05/2012, 04:19
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 2 meses
Puntos: 14
Respuesta: A donde he llegado

Vale, pues con el puntito funciona. Haciendolo sobre la construcción del mismos Double tampoco furula.

Tendré que mirar el Locale del ordenador y en función de eso hacer el replace o no. Qué coñazo!

valor = valor.replace(",", ".");

Gracias Fuzzy :)
__________________
Aprendiendo un poco de Java :D

Etiquetas: string
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 21:58.