以下是 FSI 中的内容:
> System.Math.Round(0.2916, 2);;
val it : float = 0.29
> it * 100.;;
val it : float = 29.0
> int it;;
val it : int = 28
我尝试过的任何地方的结果都是相同的 - 编译的 F# 3.1/.NET 4.0 应用程序、Visual Studio 2013 和 2015 中的 FSI、.NET Fiddle、@fsibot...
这肯定是某个地方的错误,不是吗?这里发生了什么?
这就是浮点数的工作原理。输出中显示为 29 的数字实际上略小于 29(因为浮点数不精确):
> (System.Math.Round(0.2916, 2) * 100.0) - 29.0;;
val it : float = -3.552713679e-15
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)