2011-06-19 32 views
5

garip davranışları c:şamandıra karşılaştırma problemi hedefi

(xcode 4 kesme noktası ekran görüntüsü) http://img3.picload.org/image/lawgcd/untitled.png

neden bu karşılaştırma verim doğrudur yapar? Gerçekten anlamıyorum ..

+2

kayan nokta aritmetik içeren bir daha programlama yapmadan önce Goldberg tarafından şu kağıdı Oku: http://download.oracle.com/docs/cd/E19957-01/806-3568/ncg_goldberg.html –

+0

Teşekkür Paul , çok kullanışlı! – DucatiNerd

+0

Hata ayıklayıcısını "Hata Ayıklama" yapısında çalıştırdığınızdan emin misiniz? Hata ayıklama sembolleri sıyırma ile optimize edilmiş bir yapı üzerinde çalıştırıyorsanız, hata ayıklayıcınız kaynak kodunuzdaki sınır değerlerle eşleşen çok zor bir zamana sahip olacaktır. –

cevap

6

Kod doğru çalışıyor gibi görünüyor,
Karşılaştırmanın doğruluğu doğru olduğundan emin misiniz?

Hızlı pasajı:

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"); 
    } 
} 

Çıktı:

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 

DÜZENLEME - Yorum yanıt: Benim durumumda

, kırılma noktalarını doğru çalışıyoruz:

enter image description here

+0

+1: iyi bir yaklaşım – Jhaliya

+0

Bunun için zaman ayırdığınız için teşekkürler! Garip olan şey, testin gerçek gibi görünmesidir. En azından dönüşte bir kesme noktası belirlediğimde, hata ayıklayıcı bunu vurur. – DucatiNerd

+0

Mac'imde her şey düzgün çalışıyor, ekran görüntüsünü kontrol edin. – Anne