if ve float kullanımı

adame
30-07-2011, 10:51   |  #1  
OP Üye
Teşekkür Sayısı: 0
76 mesaj
Kayıt Tarihi:Kayıt: Tem 2009

void main()
{
    float x=0.7;
    if(x==0.7) printf("a");
    else if(x<0.7) printf("b");
    else printf("c");
}
 arkadaşlar bu kodu derlediğimde sonuç b çıkıyor ama x 0.7'ye eşit.  bunun nedeni nedir?

Kapalı Hesap (153535)
30-07-2011, 12:25   |  #2  
Kapalı Hesap
Teşekkür Sayısı: 27
2,297 mesaj
Kayıt Tarihi:Kayıt: Eki 2009

Veritipini double olarak değiştir düzelecektir.

adame
30-07-2011, 13:09   |  #3  
OP Üye
Teşekkür Sayısı: 0
76 mesaj
Kayıt Tarihi:Kayıt: Tem 2009

biz floatın nedenini arıyoruz :)

DarkHellKnightX
03-08-2011, 04:55   |  #4  
Yıllanmış Üye
Teşekkür Sayısı: 4
1,663 mesaj
Kayıt Tarihi:Kayıt: Ağu 2008

C de acemiyim ama x değişkenini float yaptıysan karşılaştırmadaki 0.7 değişmezinin türünüde float yap. double dan float a tür dönüşümde değer değişiyor olabilir baştan float olarak belirlersen sorun çıkmaz Gülümseme

if(x==(float)0.7) printf("a");