Casting o conversión

09/07/2004 - 22:20 por jaimito | Informe spam
Hola compañeros...

Tengo el siguiente valor en una variable tipo String:

System.String sNum = "000.10";

Tengo otra variable tipo Single, donde guardo el valor de
la variable anterior, así:

System.String gPor;

gPor = System.Convert.ToSingle(sNum);

Resulta y pasa que cuando se realizar el casting, la
variable gPor queda con el valor de 10.0 en lugar de 0.10

Me pueden informar, ¿el por qué de este resultado y cómo
hago para obtener el valor correcto?


Mil gracias.

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
10/07/2004 - 00:44 | Informe spam
Será porque el punto se considera el separador de miles, ¿no? Prueba a poner
"000,10" a ver qué pasa.
Sugerencia: si vas a trabajar con cantidades monetarias, utiliza Decimal en
vez e Single.

Slds - Octavio

"jaimito" escribió en el mensaje
news:2a2d001c465f2$2b8935c0$
Hola compañeros...

Tengo el siguiente valor en una variable tipo String:

System.String sNum = "000.10";

Tengo otra variable tipo Single, donde guardo el valor de
la variable anterior, así:

System.String gPor;

gPor = System.Convert.ToSingle(sNum);

Resulta y pasa que cuando se realizar el casting, la
variable gPor queda con el valor de 10.0 en lugar de 0.10

Me pueden informar, ¿el por qué de este resultado y cómo
hago para obtener el valor correcto?


Mil gracias.
Respuesta Responder a este mensaje
#2 jaimito
12/07/2004 - 17:12 | Informe spam
Gracias Octavio, pero el problema radica que el dato lo
obtengo tal cual, o sea con el punto decimal standard.

Para el ejemplo, lo coloqué en una constante, pero
realmente lo obtengo de una consulta SQL.

Te agradezco lo que puedas ayudarme.
Respuesta Responder a este mensaje
#3 Alejandro Perez
12/07/2004 - 21:11 | Informe spam
Epale Jaimito! Como estas?. Mira, como te comento
Octavio, el problema es que al momento de la conversion,
se esta utilizando la coma como el separador de
decimales, no el punto. Esto es simplemente por las
configuraciones de Region de esa maquina. Si no tienes
otra alternativa, entonces puedes trabajar con un objecto
CultureInfo, y defines el punto como el separador de
decimales. Te expongo aqui la solucion: (Nota: Tambien te
recomiendo que si vas a trabajar con este tipo de datos,
utilices Decimal, no single):

Cuidate...
Alejandro Perez
MCSD/MCDBA/MCT
Caracas - Venezuela



System.String sNum = "000.10";
System.Single gPor;

System.Globalization.CultureInfo objCultura = new
System.Globalization.CultureInfo("en-US");
System.Globalization.NumberFormatInfo objFormatoNumero =
new System.Globalization.NumberFormatInfo();

objFormatoNumero.NumberDecimalSeparator=".";
objCultura.NumberFormat = objFormatoNumero;

gPor = Single.Parse(sNum,objCultura);





Gracias Octavio, pero el problema radica que el dato lo
obtengo tal cual, o sea con el punto decimal standard.

Para el ejemplo, lo coloqué en una constante, pero
realmente lo obtengo de una consulta SQL.

Te agradezco lo que puedas ayudarme.
.

Respuesta Responder a este mensaje
#4 jaimito
13/07/2004 - 23:37 | Informe spam
Mil gracias Alejandro

Epale Jaimito! Como estas?. Mira, como te comento
Octavio, el problema es que al momento de la conversion,
se esta utilizando la coma como el separador de
decimales, no el punto. Esto es simplemente por las
configuraciones de Region de esa maquina. Si no tienes
otra alternativa, entonces puedes trabajar con un objecto
CultureInfo, y defines el punto como el separador de
decimales. Te expongo aqui la solucion: (Nota: Tambien te
recomiendo que si vas a trabajar con este tipo de datos,
utilices Decimal, no single):

Cuidate...
Alejandro Perez
MCSD/MCDBA/MCT
Caracas - Venezuela



System.String sNum = "000.10";
System.Single gPor;

System.Globalization.CultureInfo objCultura = new
System.Globalization.CultureInfo("en-US");
System.Globalization.NumberFormatInfo objFormatoNumero =
new System.Globalization.NumberFormatInfo();

objFormatoNumero.NumberDecimalSeparator=".";
objCultura.NumberFormat = objFormatoNumero;

gPor = Single.Parse(sNum,objCultura);
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida