0
我尝试比较浮点值,但我不能这样做,我用这个代码:比较浮点值
float a = [[array objectAtIndex:(i+1)] floatValue];
float b = [[array objectAtIndex:(i)] floatValue];
a = [[NSString stringWithFormat:@"%.2f",a] floatValue];
b = [[NSString stringWithFormat:@"%.2f",b] floatValue];
step = [[NSString stringWithFormat:@"%.2f",step] floatValue];
float newStep = a-b;
if (newStep != step) {
NSLog(@"NewStep: %f Step: %f",newStep,step);
}
这是输出:
2013-04-28 19:07:57.396 Pro[24265:c07] NewStep: 0.220000 Step: 0.220000
2013-04-28 19:07:57.397 Pro[24265:c07] NewStep: 0.220000 Step: 0.220000
2013-04-28 19:07:57.397 Pro[24265:c07] NewStep: 0.220000 Step: 0.220000
2013-04-28 19:07:57.397 Pro[24265:c07] NewStep: 2.420000 Step: 0.220000
2013-04-28 19:07:57.397 Pro[24265:c07] NewStep: 0.220000 Step: 0.220000
2013-04-28 19:07:57.397 Pro[24265:c07] NewStep: 0.220000 Step: 0.220000
显然不工作,错误在哪里?代码似乎是正确的!
你第一次分配到“step”的位置?此外,比较容易(也可能是工作)的比较将是“abs(a - b - step)<0.005”。 – Ryan 2013-04-28 17:13:04
尝试谷歌搜索“比较浮点数”;有很多棘手的问题。 – 2013-04-28 17:19:23
step是一个参数,不过谢谢!我使用这个比较,现在它工作! – kikko088 2013-04-28 17:29:14