Acumulación en expresión, no entiendo el porque pasa ...

03/12/2005 - 11:23 por Ricard | Informe spam
Hola a todos,

Generé dos tablas una de detalle y otra de total en el mismo dataset a
partir de un archivo de texto.

Las tablas estan relacionadas entre si.

Al obtener el resultado en la columna de total de la tabla total, la
expresión sum de la columna de la tabla de detalle me devuelve un número de
decimales que no están definidos en las lineas de detalle.

Todas las lineas de detalle tienen únicamente dos decimales.
No realizo ninguna operación de cálculo (*,/)
Las columnas están definidas de tipo double

Este comportamiento me sorprende.

Ya sé que aplicando estilos puedo dar el formato que deseo, pero no entiendo
que si el detalle solo tiene dos decimales el agregado me devuelva hasta 7
decimales con valor y no son ceros.


¿Alguien me puede indicar que puede estar pasando?


Gracias por anticipado.
 

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
03/12/2005 - 15:41 | Informe spam
El problema es la forma en que se guardan los numeros de punto flotante
(Single y Double) que hace que no se puedan guardar en forma exacta algunos
valores y por lo tanto al realizar calculos pueden obtenerse valores
incorrectos. Por ejemplo, no le es posible representar con exactitud el
valor 100.1 y entonces queda como 100.09999999999999. Para evitar este
problema utiliza el tipo Decimal.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C

Preguntas similares