que tal, tengo una duda respecto del manejo de decimales a nivel de c# y
de sql...
resulta que tenemos un sistema que ha estado funcionando a la prefeccion
durante los ultimos 2 años, ahora gente externa ha creado una aplicacion
que ingresa datos a la misma BD de nuestro sistema.
El problema es que ellos ingresa un valor, por ejemplo "2.5" y en la BD
se guarda como "5.1999998926".
Revisando nuestro sistema me doy cuenta que efectivamente se guarda asi
el valor que ingresamos nosotros, ejemplo ingresamos "2.654" y en la BD
se guarda "2.6539999999999999" cuando se procesa esto en nuestro codigo
se toma de la siguiente manera:
public double Precio = Convert.ToDouble(txtPrecio.Text);
luego eso se pasa por procedimiento almacenado a la BD y según el
profiler de sql llega asi: "2.654000000000000e+000"
cuando lo recupero lo hago de la siguiente forma
if(mRow["Precio"]!ÛNull.Value)mPrecio=Convert.ToDouble(mRow["Precio"]);
y lo despliego así:
txtPrecio.Text = mPrecio.ToString();
Esto ha funcionado, como dije anteriormente, por dos años y sin ningun
problema.
Mi duda es, esto es correcto? nuestro sistema esta mal? o es que el
"nuevo" sistema es el que no esta haciendo la conversion como
corresponde?, acaso hay que configurar algo para que tome esto como
corresponde?
Leer las respuestas