Academy › 🐍 Python › Sayılar & Operatörler
Yuvarlama ve Float Sürprizi
🔢 Sayılar & Operatörler bölümü · Code Quest Python parkuru
Sayıları yuvarlamak için round() kullanılır; ikinci parametre kaç basamak istediğindir:
print(round(3.7)) print(round(3.2)) print(round(3.14159, 2))
4 3 3.14
int() ise yuvarlamaz, küsuratı direkt atar:
print(int(3.9)) print(int(-3.9))
3 -3
Şimdi sıkı dur — Python'un (aslında tüm bilgisayarların) meşhur sürprizi:
print(0.1 + 0.2)
0.30000000000000004
Bu bir hata değil! Bilgisayarlar sayıları ikilik (binary) sistemde tutar ve 0.1 gibi bazı ondalıklar ikilikte tam yazılamaz — tıpkı 1/3'ün onlukta 0.3333... diye bitmemesi gibi. Ufacık bir sapma oluşur.
== ile karşılaştırmak risklidir. Çözüm: round(0.1 + 0.2, 10) == 0.3 gibi yuvarlayarak karşılaştır. Para hesabında profesyoneller float yerine kuruş cinsinden tam sayı kullanır.Kendini test et
print(0.1 + 0.2 == 0.3) ne yazdırır?
FalseTrue0.3Hata verir
Cevabı gör
Cevap: False
Meşhur float sürprizi! 0.1+0.2 aslında 0.30000000000000004 çıkar, bu yüzden 0.3'e eşit DEĞİLDİR. Bilgisayarlar ondalıkları ikilik sistemde tutar.
Bu kodun çıktısı ne olur?
print(1 < 3 < 5) print(1 < 3 > 5)
Cevabı gör
Çıktı:
True False
Zincirleme karşılaştırma: 1<3<5 = "1<3 VE 3<5" → True. İkincide 3>5 yanlış → False.