4

我在维护/扩展的一大段代码中注意到以下内容:

float systemVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
if (systemVersion > 3.2 || systemVersion == 3.2 ) {
    //Stuff
}

我知道浮点会由于精度而导致一些奇怪的比较行为,但是上面的行为与下面的代码块有什么不同吗?

float systemVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
if (systemVersion >= 3.2) {
    //Stuff
}
4

2 回答 2

2

这是同一件事。在许多编译器中,生成的机器指令是完全相同的(尽管我不能肯定这对于 clang 是正确的)。

于 2012-09-04T18:25:37.283 回答
1

不,它不会。我认为这段代码是偶然的(可能经过几次小的调整)。

于 2012-09-04T18:22:34.350 回答