相关疑难解决方法(0)

浮点不准确的例子

你如何向仍然认为计算机是无限智能和准确的新鲜程序员和外行人解释浮点不准确?
你有一个最喜欢的例子或轶事似乎比一个精确但干燥的解释更好地理解这个想法吗?
这是如何在计算机科学课程中教授的?

floating-point floating-accuracy

29
推荐指数
3
解决办法
10万
查看次数

对于某些数字,Javascript 乘法无法正常工作

我在 JavaScript 乘法中有一个奇怪的行为。我试图将数字乘以 100。例如:

    > 9.5*100
    > 950
    > 9.95*100
    > 994.9999999999999
    > 9.995*100
    > 999.4999999999999
    > 9.9995*100
    > 999.9499999999999
    > 9.99995*100
    > 999.995
    > 9.999995*100
    > 999.9995
    > 9.9999995*100
    > 999.9999499999999
    > 9.99999995*100
    > 999.9999949999999
    > 9.999999995*100
    > 999.9999995
    > 9.9999999995*100
    > 999.99999995
    > 9.99999999995*100
    > 999.999999995
    > 9.999999999995*100
    > 999.9999999995
    > 9.9999999999995*100
    > 999.9999999999501
    > 9.99999999999995*100
    > 999.999999999995
    > 9.999999999999995*100
    > 999.9999999999994
Run Code Online (Sandbox Code Playgroud)

我只想像这样将数字相乘

9.95*100
995.0 or 995
9.995*100
999.5
9.9995*100
999.95
9.9999995*100
999.99995
Run Code Online (Sandbox Code Playgroud)

不是这样

> 9.995*100 …
Run Code Online (Sandbox Code Playgroud)

javascript multiplication

5
推荐指数
1
解决办法
831
查看次数

.6 x 100给出结果为60.00004而不是60

可能重复:
乘以100时出现神秘计算错误

这是我面临的一个奇怪的问题.我将值.6存储到float变量.当我将它乘以100时,我得到错误答案为60.000004.这个.000004来自哪里?这是我的代码

NSlog(@"%f",self.dataHandler.correctPercentage * 100);
if (self.obj.percentage >= (self.dataHandler.correctPercentage * 100) )
{
    //Do something
}
Run Code Online (Sandbox Code Playgroud)

存储在self.dataHandler.correctPercentage中的值是.6.但是当我把它记录下来时,我得到了60.000004.由于这个原因,我的边界条件出错了.

为什么会这样?

floating-point multiplication

-1
推荐指数
1
解决办法
231
查看次数