Formato decimales

10/03/2008 - 10:59 por Alhambra Eidos Kiquenet | Informe spam
Hola a todos,

tenemos una aplicación que accede a datos, y en la base de datos (distinta
de sql server) tratamos decimales. Para formar la SQL los decimales deben
tener como separador decimal el caracter punto (.).

En la configuración regional, en el hilo de la aplicación tenemos
System.Threading.Thread.CurrentThread.CurrentCulture = es-ES.

Para forzar que para decimales siempre sea con separador decimal punto (.)
tenemso algo asÍ:

System.Globalization.NumberFormatInfo nfi = new
System.Globalization.CultureInfo("en-US", false).NumberFormat;
ifxParam.Value = paramDecimal.ToString("N", nfi);

Existe alguna otra manera de hacerlo, de forzar siempre qe sea el separador
decimal punto (.) y no la coma cuando el Culture es "es-ES" ??

se podría hacer conun formato en el método decimal.ToString("...") ??

Saludos.


http://www.alhambra-eidos.es/web2005/index.html
www.kiquenet.net
http://www.setbb.com/putainformatic...opic.php?p„3
www.trabajobasura.com/solusoft
 

Leer las respuestas

#1 Alberto Poblacion
10/03/2008 - 12:10 | Informe spam
"Alhambra Eidos Kiquenet"
wrote in message news:
tenemos una aplicación que accede a datos, y en la base de datos (distinta
de sql server) tratamos decimales. Para formar la SQL los decimales deben
tener como separador decimal el caracter punto (.).

En la configuración regional, en el hilo de la aplicación tenemos
System.Threading.Thread.CurrentThread.CurrentCulture = es-ES.

Para forzar que para decimales siempre sea con separador decimal punto (.)
tenemso algo asÍ:

System.Globalization.NumberFormatInfo nfi = new
System.Globalization.CultureInfo("en-US", false).NumberFormat;
ifxParam.Value = paramDecimal.ToString("N", nfi);

Existe alguna otra manera de hacerlo, de forzar siempre qe sea el
separador
decimal punto (.) y no la coma cuando el Culture es "es-ES" ??

se podría hacer conun formato en el método decimal.ToString("...") ??



Hay una forma un poco "bestia" que consiste en hacer
variable.Tostring().Replace(",", ".");

Pero si es solo para pasárselo a una consulta a base de datos, es
preferible parametrizar la sentencia y declarar el parámetro con el tipo
correcto (p.ej., OleDbType.Decimal), y asignarle al .Value el propio valor
Decimal, sin convertirlo a string, y que sean los propios drivers de la base
de datos los que se preocupen de ponerlo en el formato correcto.

Preguntas similares