Ver Mensaje Individual
  #3  
Antiguo 15-09-2014
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Reputación: 14
engranaje Va por buen camino
Si pusieras un ejemplo de valores esperados y encontrados igual no me arriesgaba a poner nada, pero el hecho de que digar que los fallos son aleatorios y no suceden siempre me hace arriesgarme. Soy recurrente en este asunto pero a mi me ha pasado algunas veces y con distintas bases de datos. Un número con dos decimales en decimal puede tener infinitos decimales en binario. A la hora de guardar datos decimales en una bd internamente se guardan en binario, y al extralerlos o trabajar con ellos bien pudiera ser que el redondeo a 2 decimales te juegue una mala pasada. Ya digo que voi a ciegas y apunto a este problema si le fallo es por un decimal.

Puedes probar a guardar en uno de esos campos el valor 2.1 y despues extarelo a ver que obtienes. 2.1 si lo pasas a binario (según el formato) podria acabar convirtiendose en 2.09999 la hacer el cambio inverso. sin embargo con 2.2 el cambio sería exacto. Como en algunas ocasiones este ha sido mi problema yo lo comento para que lo tengas en cuenta y por si fuera el problema. Bien es posible que el cambio de double 8,2 a decimal 8,2 tuviera como consecuencia en algunos casos un error en el redondeo.
Responder Con Cita