Decimales

30/11/2004 - 14:29 por Eugenia Moya | Informe spam
Hola a todos! mi pregunta es la siguiente, tengo este valor

string sValor = "250";
IFormatProvider fp = new CultureInfo("en-US");
double doub = Convert.ToDouble(sValor , fp);

esto da doub = 250.0 y yo quiero que me de: 250.00, sin usar el
.toString("###.##"), quiero el valor double.
Tambien intenté double.parse(sValor) => 250.0
Gracias!!

Preguntas similare

Leer las respuestas

#11 pablo crosio
30/11/2004 - 19:17 | Informe spam
hola!

te comento lo que hace esta linea:

new System.Text.StringBuilder(s).Insert(s.Length - d, '.').ToString()

tenemos la cadena s con "54356565"
en d estan la cantidad de decimales (3)

yo utilice un StringBuilder para insertar el char '.' en la posicion 5 (la
longitud de la cadena - la cantidad de decimales); y al resultado lo paso a
string; entonces me quedaria la cadena "54356.565"; y luego el resultado lo
utilizo para convertirlo a decimal

podrias haberlo hecho tambien con el metodo Substring y concatenando...

lo que no entiendo es porque decis que obtenes ',' en vez de '.', supongo
que eso es cuando pasas el decimal a string, no?

salu2!!

pablo


"Eugenia Moya" escribió:

Excelente!! anduvo muy bien.. ha sido de gran ayuda.
Podrias explicarme como funciona ese codigo?
Ademas System.Globalization.CultureInfo("en-US") me muestra los datos con
"," como hago para que sea "."
Muchas Gracias.

"pablo crosio" wrote:

>
> hola!
>
> siguiendo la recomendacion de jose luis, fijate si te srive esto
>
> podrias leer la informacion del lector como un string, luego en base a lo
> que el usuario especifique convertis a decimal.
> deberias ademas hacer control de consistencia, etc etc
>
> // info del lector
> string s = "54356565";
> // decimales
> int d = 3;
> // numero
> decimal n = Convert.ToDecimal(new
> System.Text.StringBuilder(s).Insert(s.Length - d, '.').ToString(), new
> System.Globalization.CultureInfo("en-US"));
>
> en n tenes el numero decimal para trabajarlo
>
> espero te sirva
>
> salu2!!
>
> pablo
>
> "Eugenia Moya" escribió:
>
> > Te voy a dar otro ejemplo mas peligroso (en base a lo que escribi en el mail
> > anterior):
> > leo 90531, y el usuario especifica que es un decimal con 3 posciones
> > decimales.
> > debo trabajar con ese numero como un double 90.531 (con ese numero debo
> > hacer operaciones numericas asique debe estar muy bien leido)
> > otro ejemplo 9003 y decirme que es un double con 1 posicion decimal.
> > entonces debo trabajar con 900.3
> >
> > "Jose Luis Manners" wrote:
> >
> > > Hola Eugenia,
> > >
> > > Estoy de acuerdo con Pablo. Para efectos aritmeticos no hace diferencia.
> > > Pero quizas tengas algun otro proposito del cual no hemos pensado.
> > >
> > > Saludos,
> > >
> > > Jose Luis Manners, MCP
> > > http://blogs.geekdojo.net/jmanners
> > >
> > > "Encuentra felicidad en tu trabajo o nunca serás feliz."
> > > Cristóbal Colón
> > >
> > > "pablo crosio" wrote in message
> > > news:
> > > >
> > > > barbaro pero. ¿podrias especificar el por que? no entiendo cual es
> > > tu
> > > > problema de tener un decimal, dos, tres, cuatro, etc, si siempre son 0.
> > > >
> > > > salu2!!
> > > >
> > > > pablo
> > > >
> > > > "Eugenia Moya" escribió:
> > > >
> > > > > El problema es que quiero solo 2 decimales.
> > > > >
> > > > > "pablo crosio" wrote:
> > > > >
> > > > > >
> > > > > > duda:
> > > > > >
> > > > > > si estas trabajando con numeros de doble precision (no con strings);
> > > cual es
> > > > > > la diferencia entre 250.0 y 250.00 o 250.00000000000?
> > > > > >
> > > > > > no me queda claro lo que necesitas hacer... podrias exponer cual es el
> > > > > > problema que tenes?
> > > > > >
> > > > > > salu2!!
> > > > > >
> > > > > > pablo
> > > > > >
> > > > > > "Eugenia Moya" escribió:
> > > > > >
> > > > > > > Hola a todos! mi pregunta es la siguiente, tengo este valor
> > > > > > >
> > > > > > > string sValor = "250";
> > > > > > > IFormatProvider fp = new CultureInfo("en-US");
> > > > > > > double doub = Convert.ToDouble(sValor , fp);
> > > > > > >
> > > > > > > esto da doub = 250.0 y yo quiero que me de: 250.00, sin usar el
> > > > > > > .toString("###.##"), quiero el valor double.
> > > > > > > Tambien intenté double.parse(sValor) => 250.0
> > > > > > > Gracias!!
> > > > > > >
> > >
> > >
> > >
Respuesta Responder a este mensaje
#12 Eugenia Moya
30/11/2004 - 19:35 | Informe spam
si, es por mi configuracion regional, la verdad es que no entiendo muy bien
System.Globalization.CultureInfo, porque parece que esa clase es la que toma
la configuracion regional de mi maquina (que está en ","), podria primero
saber cual esmi configuracion para cambiarla.. (quiero trabajar con puntos
para separar los decimales)

"pablo crosio" wrote:


hola!

te comento lo que hace esta linea:

new System.Text.StringBuilder(s).Insert(s.Length - d, '.').ToString()

tenemos la cadena s con "54356565"
en d estan la cantidad de decimales (3)

yo utilice un StringBuilder para insertar el char '.' en la posicion 5 (la
longitud de la cadena - la cantidad de decimales); y al resultado lo paso a
string; entonces me quedaria la cadena "54356.565"; y luego el resultado lo
utilizo para convertirlo a decimal

podrias haberlo hecho tambien con el metodo Substring y concatenando...

lo que no entiendo es porque decis que obtenes ',' en vez de '.', supongo
que eso es cuando pasas el decimal a string, no?

salu2!!

pablo


"Eugenia Moya" escribió:

> Excelente!! anduvo muy bien.. ha sido de gran ayuda.
> Podrias explicarme como funciona ese codigo?
> Ademas System.Globalization.CultureInfo("en-US") me muestra los datos con
> "," como hago para que sea "."
> Muchas Gracias.
>
> "pablo crosio" wrote:
>
> >
> > hola!
> >
> > siguiendo la recomendacion de jose luis, fijate si te srive esto
> >
> > podrias leer la informacion del lector como un string, luego en base a lo
> > que el usuario especifique convertis a decimal.
> > deberias ademas hacer control de consistencia, etc etc
> >
> > // info del lector
> > string s = "54356565";
> > // decimales
> > int d = 3;
> > // numero
> > decimal n = Convert.ToDecimal(new
> > System.Text.StringBuilder(s).Insert(s.Length - d, '.').ToString(), new
> > System.Globalization.CultureInfo("en-US"));
> >
> > en n tenes el numero decimal para trabajarlo
> >
> > espero te sirva
> >
> > salu2!!
> >
> > pablo
> >
> > "Eugenia Moya" escribió:
> >
> > > Te voy a dar otro ejemplo mas peligroso (en base a lo que escribi en el mail
> > > anterior):
> > > leo 90531, y el usuario especifica que es un decimal con 3 posciones
> > > decimales.
> > > debo trabajar con ese numero como un double 90.531 (con ese numero debo
> > > hacer operaciones numericas asique debe estar muy bien leido)
> > > otro ejemplo 9003 y decirme que es un double con 1 posicion decimal.
> > > entonces debo trabajar con 900.3
> > >
> > > "Jose Luis Manners" wrote:
> > >
> > > > Hola Eugenia,
> > > >
> > > > Estoy de acuerdo con Pablo. Para efectos aritmeticos no hace diferencia.
> > > > Pero quizas tengas algun otro proposito del cual no hemos pensado.
> > > >
> > > > Saludos,
> > > >
> > > > Jose Luis Manners, MCP
> > > > http://blogs.geekdojo.net/jmanners
> > > >
> > > > "Encuentra felicidad en tu trabajo o nunca serás feliz."
> > > > Cristóbal Colón
> > > >
> > > > "pablo crosio" wrote in message
> > > > news:
> > > > >
> > > > > barbaro pero. ¿podrias especificar el por que? no entiendo cual es
> > > > tu
> > > > > problema de tener un decimal, dos, tres, cuatro, etc, si siempre son 0.
> > > > >
> > > > > salu2!!
> > > > >
> > > > > pablo
> > > > >
> > > > > "Eugenia Moya" escribió:
> > > > >
> > > > > > El problema es que quiero solo 2 decimales.
> > > > > >
> > > > > > "pablo crosio" wrote:
> > > > > >
> > > > > > >
> > > > > > > duda:
> > > > > > >
> > > > > > > si estas trabajando con numeros de doble precision (no con strings);
> > > > cual es
> > > > > > > la diferencia entre 250.0 y 250.00 o 250.00000000000?
> > > > > > >
> > > > > > > no me queda claro lo que necesitas hacer... podrias exponer cual es el
> > > > > > > problema que tenes?
> > > > > > >
> > > > > > > salu2!!
> > > > > > >
> > > > > > > pablo
> > > > > > >
> > > > > > > "Eugenia Moya" escribió:
> > > > > > >
> > > > > > > > Hola a todos! mi pregunta es la siguiente, tengo este valor
> > > > > > > >
> > > > > > > > string sValor = "250";
> > > > > > > > IFormatProvider fp = new CultureInfo("en-US");
> > > > > > > > double doub = Convert.ToDouble(sValor , fp);
> > > > > > > >
> > > > > > > > esto da doub = 250.0 y yo quiero que me de: 250.00, sin usar el
> > > > > > > > .toString("###.##"), quiero el valor double.
> > > > > > > > Tambien intenté double.parse(sValor) => 250.0
> > > > > > > > Gracias!!
> > > > > > > >
> > > >
> > > >
> > > >
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida