Buenas tardes.
Estoy trabajando (en VB .Net 4.6) con un facturador de ventas y tengo el siguiente inconveniente, al querer realizar el cálculo: 100.02-100=0.02, obtengo:
Caso 1: 100.02-100 -> 0.019999999999996021 (Double)
X
Caso 2: CDec(100.02-100) -> 0.019999999999996 (Decimal)
X
Caso 3: cdec(100.02)-cdec(100) -> 0.02 (Decimal)
√
Si uso tipos de datos System.Single
tengo estas diferencias, pero si uso System.Decimal
es matar un mosquito con un cañon. Sólo utilizo 2 decimales significativos.
¿Es un 'error' de esta versión del framework? ¿Sí o sí debo utilizar tipos de datos System.Decimal
para evitar las diferencias al operar con System.Single
y System.Double
?