Tengo un problema de redondeo dentro de .Net.. Redondeo .Net Problema
Estoy redondeando un número de 3 dígitos a dos dígitos y está causando algunos problemas con un número.
Si trato de redondear 34.425 a dos decimales, debería redondearlo a 34.43. Estoy usando la opción roundawayfromzero y ha funcionado para todos los números del programa, excepto para este hasta ahora.
El código Math.Round(34.425, 2, MidpointRounding.AwayFromZero)
debe ser igual a 34.43, sin embargo, es igual a 34.42.
Si pruebo esto con cualquier otro número, funciona bien.
Math.Round(34.435, 2, MidpointRounding.AwayFromZero) = 34.44
Math.Round(34.225, 2, MidpointRounding.AwayFromZero) = 34.23
Math.Round(34.465, 2, MidpointRounding.AwayFromZero) = 34.47
Solo quería comprobar si alguien ha tenido este problema antes?
Por ahora, he resuelto este problema convirtiendo el número a un decimal. He cambiado el código para esto y funciona bien ahora:
Math.Round(CDec(34.425), 2, MidpointRounding.AwayFromZero) = 34.43
estoy buscando por una razón de por qué mi viejo código no funcionaba.
¡Gracias!
Actualizado el código hasta el punto AwayFromZero
+1 para sugerencia decimal –
Gracias por la respuesta. Supongo que mi gran pregunta es: ¿por qué funciona esto para todos los demás valores? – Jeff
También tendría que estar de acuerdo contigo si fuera una variable. Sin embargo, estaba poniendo este valor en la lista de vigilancia como 34.425. Entonces no debería estar representado como 34.43499999 ... ¿Es correcto en mi suposición? – Jeff