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

double String

Estas en el tema de double String en el foro de Java en Foros del Web. TENGO UN GRAN PROBLEMA, y necesito ayuda. Tengo un fichero en excel, con numeroS de esta forma: -1,04 -0,6 ... etc y cuando los quiero ...
  #1 (permalink)  
Antiguo 17/01/2010, 04:29
 
Fecha de Ingreso: enero-2010
Mensajes: 4
Antigüedad: 14 años, 3 meses
Puntos: 0
double String

TENGO UN GRAN PROBLEMA, y necesito ayuda. Tengo un fichero en excel, con numeroS de esta forma: -1,04 -0,6 ... etc y cuando los quiero utilizar como doubles me da esto:
java.lang.NumberFormatException: For input string: "-0,60"
at sun.misc.FloatingDecimal.readJavaFormatString(Unkn own Source)
at java.lang.Double.parseDouble(Unknown Source)
he pasado el fichero a texto, leo linea a linea, utilizo
StringTokenizer tokens=new StringTokenizer(linea);
str=tokens.nextToken();
str1=str.trim();
str1.replace(',', '.');
... y nada he utilizado DecimalFormat df = new DecimalFormat ("#,## 0,00 "); también NumberFormat nf = NumberFormat.getInstance(Locale.ENGLISH);
//nf.format(str1); Y NADA DE NADA
ES QUE JAVA NO PERMITE UTILIZAR ESTOS NÚMEROS,
por favor necesito ayuda estoy desesperado
Gracias
  #2 (permalink)  
Antiguo 17/01/2010, 12:22
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: double String

En el Locale.ENGLISH, el símbolo ',' es para los millares y no para los decimales. Prueba con el formato español.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #3 (permalink)  
Antiguo 17/01/2010, 16:47
 
Fecha de Ingreso: enero-2010
Mensajes: 4
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: double String

Lo primero, perdón por no saber preguntar (será la desesperación).
Mi problema es que no consigo utilizar los datos que tengo en un fichero que he pasado a texto. Los datos utilizan la ',' como separador de decimales, pero yo quiero utilizar eso datos de tipo double( los '.' son para indicar decimales y las ',' para indicar millares), para ello utilizo las oportunas funciones que me ofrece la clase String (trim(), REplace()) a continuación quiero introducir los datos en el correspondiente array (array[f][c]=Double.parseDouble(str1)).
Y cuando ejecuto el fichero me aparece el error que indique en el anterior mensaje. Volví a repasar mis documentos y conocimientos, busqué y encontré las clases para el formateo NumberFormat y DecimalFormat, tampoco conseguí solventar el problema. La cuestión es que no sé dónde está mi error o cuál es el método oportuno. La pregunta es como puedo utilizar esos datos.
Gracias
  #4 (permalink)  
Antiguo 18/01/2010, 01:48
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: double String

Pues a mi me funciona:
Código PHP:
    String aLeer "-0,60";
    
NumberFormat nf NumberFormat.getInstance();
    
// Si el Locale por defecto no es ES, entonces usar la linea de abajo.
    // NumberFormat nf = NumberFormat.getInstance(new Locale("ES"));
    
System.err.println("Numero: " nf.parse(aLeer)); 
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #5 (permalink)  
Antiguo 18/01/2010, 18:31
 
Fecha de Ingreso: enero-2010
Mensajes: 4
Antigüedad: 14 años, 3 meses
Puntos: 0
Sonrisa Respuesta: double String

Gracias por tu interés, reconforta saber que hay gente desinteresada en ayudar. Analicé tu mensaje e implementé rapidamente tu código, y funciona ... pero cuando lo trasladé a mi proyecto no, esta claro que mi código necesitaba algo más y después de recaer en la mayor de las desesperaciones, miré y miré, y por fin FUNCIONÓ, y como siempre era una tontería, te pongo parte del código para que veas como queda y hacerte participe de mi alegria, tu me ayudaste.
....
while(tokens.hasMoreTokens()){
str=tokens.nextToken();
str1=str.trim();
NumberFormat nf = NumberFormat.getInstance();
Number x =nf.parse(str1);
array[f][i]=x.floatValue(); //esto faltaba
System.out.println("muestra fila"+f+": "+array[f][i]);
i++;
....
GRACIAS
  #6 (permalink)  
Antiguo 19/01/2010, 04:53
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: double String

Me alegro que te funcione y que lo hayas encontrado tú con un par de indicaciones, que es como más se aprende. .

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.

Etiquetas: double, 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 03:59.