相关疑难解决方法(0)

浮点数学是否破碎?

请考虑以下代码:

0.1 + 0.2 == 0.3  ->  false
Run Code Online (Sandbox Code Playgroud)
0.1 + 0.2         ->  0.30000000000000004
Run Code Online (Sandbox Code Playgroud)

为什么会出现这些不准确之处?

language-agnostic math floating-point floating-accuracy

2798
推荐指数
28
解决办法
28万
查看次数

比较Objective-C中的浮点数的奇怪问题

在算法的某个时刻,我需要将类的属性的浮点值与浮点数进行比较.所以我这样做:

if (self.scroller.currentValue <= 0.1) {
}
Run Code Online (Sandbox Code Playgroud)

其中currentValue是一个浮动属性.

但是,当我具有相等性并且self.scroller.currentValue = 0.1if语句未满足且代码未执行时!我发现我可以通过将0.1转换为浮动来解决这个问题.像这样:

if (self.scroller.currentValue <= (float)0.1) {
}
Run Code Online (Sandbox Code Playgroud)

这很好用.

任何人都可以向我解释为什么会这样吗?默认情况下,0.1是否定义为double?

谢谢.

iphone floating-point casting objective-c

23
推荐指数
2
解决办法
3万
查看次数

1.265*10000 = 126499.99999999999?

当我将1.265乘以10000时,使用Javascript时得到126499.99999999999.

为什么会这样?

javascript floating-point floating-accuracy

6
推荐指数
3
解决办法
1393
查看次数