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 に答える