Python'da Bir Sayı Nasıl Yuvarlanır (round() Fonksiyonu ve Ondalık)

Python'da kayan noktalı sayıların nasıl yuvarlanacağını öğrenin. Banker'ın yuvarlamayı, özel ondalık hassasiyetini ve görüntüleme için kayan biçimlendirmeyi anlayın.

Bu Çözümü Editör'de deneyin

Genel Bakış

Bilgisayarlardaki kayan nokta aritmetiği, ikili sistemlerin ondalık sayıları depolama şekli nedeniyle bazen beklenmedik hassasiyet sorunlarına yol açabilir (örneğin, "0,1 + 0,2", "0,30000000000000004" olarak değerlendirilir). Sayıları kullanıcılara sunarken veya metrikleri hazırlarken sayıları yuvarlamak yaygın bir gereksinimdir. Python bunu başarmanın çeşitli yollarını sunar.

Birincil araç yerleşik 'yuvarlak(sayı, rakam)' işlevidir. Bir sayı ve isteğe bağlı bir hassas sayım gerektirir. Eğer 'ndigits' atlanırsa, en yakın tamsayıya yuvarlanır. Eğer 'ndigit' sağlanmışsa, bu ondalık basamak sayısına yuvarlanır.

Python'un `round()` fonksiyonunun önemli bir özelliği, "Banker'in yuvarlamasını" (yarıdan çifte yuvarlama) kullanmasıdır. Bir sayı iki tam sayının tam ortasında olduğunda (örneğin, '2,5' veya '3,5'), Python en yakın *çift* sayıya yuvarlar. Bu, "yuvarlak(2.5)"un "2" ve "yuvarlak(3.5)"un "4" olduğu anlamına gelir. Yukarıya doğru sapmayı önlemek için büyük veri kümeleri üzerinde matematiksel olarak adil olsa da, hassas finansal hesaplamalar için "ondalık" modülün niceleme araçlarını kullanmalısınız.

Kod ve Yürütme Çıkışı

Bu komut dosyası, yerleşik yuvarlama işlevini, Banker'ın yuvarlama örneklerini ve ondalık modülünü kullanan yuvarlama kayan noktalarını gösterir.

round_numbers.py
Editör'de deneyin
from decimal import Decimal, ROUND_HALF_UP

val = 3.14159

# 1. Round to nearest integer
print("Nearest Integer:", round(val))

# 2. Round to 2 decimal places
print("Two decimals:", round(val, 2))

# 3. Banker's Rounding demonstration (rounds to nearest even)
print("round(2.5):", round(2.5)) # Nearest even is 2
print("round(3.5):", round(3.5)) # Nearest even is 4

# 4. Math rounding up (Traditional rounding) using decimal module
amount = Decimal("2.5")
rounded_up = amount.quantize(Decimal("1"), rounding=ROUND_HALF_UP)
print("Decimal ROUND_HALF_UP (2.5):", rounded_up)
Terminal Çıkışı
Nearest Integer: 3
Two decimals: 3.14
round(2.5): 2
round(3.5): 4
Decimal ROUND_HALF_UP (2.5): 3

Adım Adım Uygulama

  • Bir kayan noktayı en yakın tam sayıya yuvarlamak için yerleşik round(number) işlevini çağırın.
  • Tutulacak ondalık basamak sayısını belirtmek için ikinci bir argüman (örneğin, round(num, 2)) iletin.
  • Kesin finansal yuvarlama hesaplamaları için ROUND_HALF_UP ile ondalık modülü kullanın.

Sıkça Sorulan Sorular

Python'da neden round(2.5) 3 yerine 2 döndürüyor?

Python, yarım sayıları en yakın çift tam sayıya yuvarlayan Banker yuvarlama yöntemini kullanır. Bu, istatistiksel önyargıyı azaltır (sayıların yarıma yuvarlanması her zaman büyük veri kümelerinde hafif bir yukarı doğru kaymaya neden olur).

Bir sayıyı her zaman yukarıya veya her zaman aşağıya nasıl yuvarlarım?

Math modülünü içe aktarın ve bir sonraki tam sayıya yuvarlamak için math.ceil(x) komutunu veya önceki tam sayıya yuvarlamak için math.floor(x) komutunu kullanın.

İlgili Konular

Önerilen Python Kaynakları

İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.