C++'da sayı yakın olan sayıya nasıl yuvarlanır?

Tamamen ondalık sayılarla mükemmel doğrulukta işlemler yapmak mümkün değil maalesef.

Edit, type casting ve format specifier ile çözüm buldum. @EmirArat
C:
#include <stdio.h>
#include <stdlib.h>

int main() {
 
    float a = (int)90*20/(float)100+(int)88*30/(float)100+(int)91*50/(float)100; //89.9
    printf("%1.0f\n", a); //90
    return 0;
}
 
Son düzenleme:

Zaten arkadaş bunları incelese type casting ile çözüleceğini anlayacak ama maalesef...
 
Bu işlemin sonucu 89.9 çıkması gerekirken 89.0 çıkıyor. Neden virgülden sonraki kısımı yok sayıyor? 90'a yuvarlanarak çıkması için ne yapmam gerekiyor?

C:
#include <stdio.h>
#include <stdlib.h>


int main() {
 
    float ortalama=90*20/100+88*30/100+91*50/100;
 
    printf("%f",ortalama);
    return 0;
}
Ben de tam anlamamakla beraber parantez kullanarak işlemleri yazmanı tavsiye ediyorum
 
Bölme işlemi sırasında eğer bölünen ve bölen integer olursa bölüm de integer olur. Bu yüzden sonucun float tipinde olması gerekiyorsa bölünen veya bölenden herhangi birisinin float olması gerekiyor.

C:
float ortalama = 90 * 20 / 100.0f + 88 * 30 / 100.0f + 91 * 50 / 100.0f;
 

Yeni konular

Geri
Yukarı