Estoy tratando de convertir un objeto con el valor 0.39999999999999997
en una variable decimal sin perder la precisión.C# Convertir objeto a Decimal
object d = 0.39999999999999997;
He intentado los siguientes métodos.
decimal val1 = Convert.ToDecimal(d); // val1 = 0.4
object val2 = Convert.ChangeType(d, Type.GetType("System.Decimal")); // val2 = 0.4
decimal val3 = decimal.Parse(d.ToString()); // val3 = 0.4
decimal val4 = (Decimal) d; // val4 = 0.4
sé que el que esto no es un problema con los datos decimales tipo no ser capaz de almacenar este valor como se ilustra a continuación.
decimal val5 = 0.39999999999999997m; // val5 = 0.39999999999999997;
¿Cómo convierto este objeto a decimal sin perder la precisión?
Estoy usando .NET Framework 3.5 si eso es importante.
muy seguro de que se puede garantizar la precisión persistente entre el boxeo/unboxing y diferente de conversión de tipos flotantes. – Tigran