задача сравнения с плавающей запятой цель c - PullRequest
5 голосов
/ 19 июня 2011

странное поведение:

(скриншот точки останова xcode 4) http://img3.picload.org/image/lawgcd/untitled.png

почему это сравнение дает истину?Я действительно не понимаю ..

1 Ответ

6 голосов
/ 19 июня 2011

Код, кажется, работает правильно,
Вы уверены, что сравнение подтверждает истинность?

Быстрый фрагмент:

for(int i=0;i<10;i++){
    float value = (arc4random()%100)/(float)100.0f;
    NSLog(@"%f",value);
    if(value < 0.01f) {
        NSLog(@"YES");
    } else {
        NSLog(@"NO");
    }
}

Вывод:

0.520000
NO
0.520000
NO
0.100000
NO
0.000000
YES
0.390000
NO
0.690000
NO
0.770000
NO
0.930000
NO
0.320000
NO
0.230000
NO

EDIT - Ответ на комментарий:

В моем случае точки останова работают правильно:

enter image description here

...