Şimdi Ara

DEV C++ Bölme sorunu

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
0
Favori
1.721
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar merhaba.Biraz kod çalışıyodum fakat dev c++ programında bölme işleminde sorun oluştu sonra en basit haliyle denedim mesela

    #include <stdio.h>
    #include <math.h>

    main()
    {
    float t=3/4;
    printf("%f",t);
    }

    şeklinde yazdım fakat sonucu hep sıfır veriyor.Bu saatte gözümden kaçan bir şey mi var acaba ?



  • Merhaba,

    Fark ettıysen 3/4 işleminin elemanlarının ikisi de Integer. Bu yuzden bölme işlemi Integer tipine göre yapılır. Integer bölmesinde sonuç her zaman aşağıya yuvarlandığı için 0 olur.

    Fakat sayılardan birini float tanımlasaydık, 3/4.0f veya 3/(float)4;

    Integer ve Float arasından Float daha "hassas, güçlü" olduğu için, bölme Float'a göre yapılacaktı ve sonuç 0.75f çıkacaktı.

    Aritmatik işlemlerde kullanılan değişken tiplerini birbirlerine dönüştürme tablosu da aşağıda:

    C++03 standartına göre:

    quote:


    Eğer elemanlardan biri long double ise, diğeri de long double'a dönüştürülür.
    Değilse, eğer elemanlardan biri double ise, diğeri de double'a dönüştürülür.
    Değilse, eğer elemanlardan biri float ise, diğeri de float'a dönüştürülür.
    Değilse, "Integer Promotion" denilen Integer türevlerini birbirine dönüştürerek hassaslığı artırma işlemi yapılır. (Çok önemli bir açıklama değil bu)
    Eğer elemanlardan biri unsigned long ise, diğeri de unsigned long'a dönüştürülür.
    Değilse, eğer elemanlardanbiri long int ve diğeri unsigned int ise, eğer long int unsigned int tipinin bütün değerlerini gösterebiliyorsa diğer eleman long int'e, gösteremiyorsa her ikisi e unsigned long int'e dönüştürülür.
    Değilse, eğer elemanlardan biri long ise, diğeri de long'a dönüştürülür.
    Değilse, eğer elemanlardan biri unsigned ise, diğeri de unsigned'a dönüştürülür.


    Kaynak:http://stackoverflow.com/questions/5780578/c-type-of-the-division




  • Sağolasın dostum basit ama gözden kaçan bişey
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.