浮动精度丢失 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 没有足够的有效数字来存储您试图准确解析的数字。