float.Parse返回不正确的值

Mar*_*hal 2 .net c# floating-point parsing

string X有价值2.26

当我使用float.Parse(X)..it 解析它时2.2599999904632568.为什么这样?以及如何克服这一点?

但如果相反我使用double.Parse(X)它返回确切的值,即2.26.

编辑:代码

float.Parse(dgvItemSelection[Quantity.Index, e.RowIndex].Value.ToString());
Run Code Online (Sandbox Code Playgroud)

感谢帮助

Jar*_*Par 7

这是由于浮点数的精度有限.它们不能代表无限精确的值,而且往往采用近似值.如果你需要高精度的数字,你应该使用Decimal.

关于这个主题有相当多的文献,你应该看看.我最喜欢的资源如下


归档时间:

查看次数:

2838 次

最近记录:

13 年,3 月 前