相关疑难解决方法(0)

舍入错误?

在我的课程中,我被告知:

连续值大约在内存中表示,因此使用浮点数计算涉及舍入误差.这些是位模式的微小差异; 因此,e==f如果是漂浮物e,f则测试是不安全的.

参考Java.

这是真的?我使用了doubles和floats的比较语句,并且从未遇到过舍入问题.从来没有我在课本上读过类似的东西.当然虚拟机占了这个?

java memory floating-accuracy

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

iphone/Objective C - 比较双打不起作用

我想我会疯了."反击"和"间隔"都是双打.这发生在加速度计上:didAccelerate,间隔为(.01)."计数器"最终应增加到"间隔".由于某种原因,我不能得到这个"如果"响.

我忽略了什么吗?

double interval = .5;
 if( counter == interval ){ //should eventually be .50000 == .50000
  NSLog( @"Hit!" );
  [self playSound];
  counter = 0;
 }else{
  counter += .01;
 }
NSLog( @"%f, %f, %d",counter,interval,(counter == interval) );
Run Code Online (Sandbox Code Playgroud)

iphone floating-point objective-c ios

10
推荐指数
2
解决办法
9490
查看次数

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
查看次数