浮动精度丢失 float.Parse
floating precision lost in float.Parse
float s = float.Parse("10499.9705314636");
现在 s
的值为 10499.97
。
有没有办法保存所有的精度数字?
您应该尝试改用 decimal
。
尝试使用精度高于float
的数据类型,例如double
。由于数据类型 float
:
的大小,您的值的剩余数字被截断
double s = double.Parse("10499.9705314636");
Console.WriteLine(s);
打印:
10499.9705314636
您可能想查看 difference between float, double, and decimal。请特别注意 binary 浮点类型和 decimal 浮点类型之间的区别。十进制数据类型可能是您在这里寻找的,因为 float 没有足够的有效数字来存储您试图准确解析的数字。
float s = float.Parse("10499.9705314636");
现在 s
的值为 10499.97
。
有没有办法保存所有的精度数字?
您应该尝试改用 decimal
。
尝试使用精度高于float
的数据类型,例如double
。由于数据类型 float
:
double s = double.Parse("10499.9705314636");
Console.WriteLine(s);
打印:
10499.9705314636
您可能想查看 difference between float, double, and decimal。请特别注意 binary 浮点类型和 decimal 浮点类型之间的区别。十进制数据类型可能是您在这里寻找的,因为 float 没有足够的有效数字来存储您试图准确解析的数字。