C sharp - Convertir a Double

   
Vista:

Convertir a Double

Publicado por Milo (1 intervención) el 14/09/2015 06:39:30
Hola
Tengo un programa en C# que lee numeros de un archivo txt. el problema es que cuando el archivo tiene numeros decimales y al momento de convertirlos en double, el puntico decimal se desaparece, y quedan como numeros enteros. por ejemplo, un numero en el archivo txt 94.4, ese numero primero lo guardo en una variable string, pero cuando lo convierto en double, me queda como 944.
Este es el codigo:

double valor=0;
string line;
System.IO.StreamReader file = new System.IO.StreamReader(@"C:\archivo.txt");
while ((line = file.ReadLine()) != null)

valor = Convert.ToDouble(line);

o sino utilizo valor =double.parse(line) y aun asi quita el punto del decimal.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Convertir a Double

Publicado por David (59 intervenciones) el 14/09/2015 10:45:29
El problema lo tienes por la configuración regional, porque en el txt el separador decimal es el punto y en la configuración es la coma.
Si sabes seguro que todos los números con decimales que te lleguen el separador va a ser el punto, tienes dos opciones, cambiar el punto por la coma
1
valor = Double.parse(line.Replace(".", ","));
O cambiar la cultura al convertir a número, para que sepa qué separadores utilizar
1
valor = Double.parse(line, CultureInfo.InvariantCulture);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Convertir a Double

Publicado por Jesus Ramirez Serrano (5 intervenciones) el 02/06/2016 21:51:55
es muy sensillo

Valor=Convert.ToDouble(...);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Convertir a Double

Publicado por José Eduardo (6 intervenciones) el 01/07/2016 07:21:22
Hola :D


La solución es sencilla, es un problema de configuración.
Al realizar la conversión indica la región, para que te respete el uso de puntos o comas.

valor = Double.parse(line, CultureInfo.InvariantCulture);


¡Mucha Suerte! :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar