100 + 200 + 80,34 = 380,339897165 !

Tengo en una mdb en access97 una tabla con 1 campo Importe, definido como tipo Simple y 2 lugares decimales. Guardo 3 registros con las cantidades 100, 200 y 80,34 respectivamente.
Cuando hago un select individual de cada registro las cantidades me salen tal y como las metí.
Cuando hago un select sum(importe) sale una cantidad incorrecta con un montón de decimales. ¿Es qué no saben sumar en Redmond? ¿Pero no habían resuelto ya Intel el problema del Pentium? ;-)
A la tabla accedo desde páginas ASP con VisualBasicScript. Si ejecuto la consulta desde Access97 el problema es el mismo.
Es buscado por internet pero no he encontrado nada. ¿Sabes dónde puedo buscar? ¿Alguna idea sobre este comportamiento?

1 respuesta

Respuesta
Desconozco el origen de tu problema, pero si el formato del campo es simple con 2 decimales, access mostrará lo que hay guardado. Ahora bien, con campos en formato doble (float) muestra solo los decimales que se hayan seleccionado aunque guarde más información.
Para solucionar este problema, debemos cuidar los procesos donde se registran los datos, y emplear funciones adecuadas.
Personalmente, y desde que empezamos con el euro, yo utilizo Round() en Access, con dos decimales, y te puedo garantizar que se muestran 2 decimales y se guardan 2 decimales.
No creo que sea un problema del pentium, más bien yo me inclinaría a pensar que existe un proceso en tu sistema, donde los datos que se introducen van con todos los decimales que ofrezca algún resultado de ese proceso.
Gracias por tu tiempo. Al final lo resolví poniendo el campo de tipo Moneda (creo que confundí Tipo y Formato al principio). Lo del Pentium era una simple broma.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas