Lajiverta Academy Satın Al — 499₺

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:

PYTHON
print(round(3.7))
print(round(3.2))
print(round(3.14159, 2))
▸ ÇIKTI
4
3
3.14

int() ise yuvarlamaz, küsuratı direkt atar:

PYTHON
print(int(3.9))
print(int(-3.9))
▸ ÇIKTI
3
-3

Şimdi sıkı dur — Python'un (aslında tüm bilgisayarların) meşhur sürprizi:

PYTHON
print(0.1 + 0.2)
▸ ÇIKTI
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.

💡 Bu yüzden float'ları == 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?

  • False
  • True
  • 0.3
  • Hata 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.