相关疑难解决方法(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万
查看次数

浮点是如何存储的?什么时候重要?

在对这个问题的跟进中,似乎有些数字根本不能用浮点表示,而是近似的.

如何存储浮点数?

是否有不同尺寸的通用标准?

如果我使用浮点,我需要注意什么样的问题?

它们是否是跨语言兼容的(即,我需要处理哪些转换才能通过TCP/IP将python程序中的浮点数发送到C程序)?

-亚当

floating-point rounding-error

36
推荐指数
4
解决办法
2万
查看次数

Objective-C中的浮点数有问题

我有一个小问题,我找不到解决方案!

我的代码是(这只是一个示例代码,但我的原始代码执行类似的操作):

float x = [@"2.45" floatValue];


for(int i=0; i<100; i++)
    x += 0.22;

NSLog(@"%f", x);
Run Code Online (Sandbox Code Playgroud)

输出是52.450001而不是52.450000!

我不知道因为这种情况发生了!

谢谢你的帮助!

〜〜解决

谢谢大家!是的,我用双重型解决了!

floating-point cocoa objective-c floating-point-precision

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

Javascript 将 0.1 添加到 0.2 导致 0.30000000000000004

可能重复:
Javascript 数学错误:不精确的浮点数

我有以下代码来制作动画(doIt 制作动画但不相关)。

function recur(max, i){
    console.log("i: " + i);
    if ( i <= 1){
        setTimeout(function(){
            // doIt(max,i);
            recur(max, i + 0.1);                
        },100);
    } else {
        // OK
    }
}
recur(16,0);
Run Code Online (Sandbox Code Playgroud)

但是,i 值不一致。对于以下代码,输出为(Google Chrome 20):

i: 0 
i: 0.1 
i: 0.2 
i: 0.30000000000000004
i: 0.4 
i: 0.5 
i: 0.6 
i: 0.7 
i: 0.7999999999999999 
i: 0.8999999999999999 
i: 0.9999999999999999 
i: 1.0999999999999999 
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我想要 0.3 不是一个如此接近的数字。不幸的是,这在每次迭代中都会发生。

javascript settimeout

0
推荐指数
1
解决办法
7930
查看次数