Python round() Fonksiyonu ve ÖRNEKLERİ
⚡ Akıllı Özet
Python `round()` fonksiyonu, ondalıklı veya tamsayı bir değeri belirtilen sayıda ondalık basamağa yuvarlar ve eşitlik durumlarında en yakın çift basamağa yuvarlama yöntemini kullanır.

round() fonksiyonu nedir? Python?
Python `round()` fonksiyonu, yerleşik bir fonksiyon olarak kullanılabilir. Python. Size, giriş olarak verilen ondalık basamaklara yuvarlanacak bir kayan sayı döndürecektir.
Yuvarlatılacak ondalık basamaklar belirtilmemişse 0 kabul edilir ve en yakın tam sayıya yuvarlanır.
Sözdizimi
round(float_num, num_of_decimals)
Parametreler
- float_num: Yuvarlanacak ondalık sayı.
- ondalık basamak sayısı: (İsteğe bağlı) Yuvarlama sırasında dikkate alınacak ondalık basamak sayısı. İsteğe bağlıdır ve belirtilmezse varsayılan olarak 0'dır ve yuvarlama en yakın tam sayıya yapılır.
Açıklama
`round()` metodu iki argüman alır:
- Yuvarlanacak sayı ve
- yuvarlama sırasında dikkate alınması gereken ondalık basamaklar.
İkinci argüman isteğe bağlıdır ve belirtilmediğinde varsayılan olarak 0 değerini alır; bu durumda en yakın tamsayıya yuvarlanır ve dönüş türü de bir tamsayı olur.
Ondalık basamaklar, yani ikinci argüman mevcut olduğunda, verilen basamak sayısına yuvarlanacaktır. Dönüş türü float olacaktır.
Verilen ondalık basamaktan sonraki sayı şu ise:
- Eğer değer 5 veya daha büyükse, nihai değere +1 eklenecektir.
- Eğer değer 5'ten küçükse, son değer belirtilen ondalık basamak sayısına kadar olduğu gibi döndürülecektir.
Geri dönüş değeri
`num_of_decimals` belirtilmemişse tamsayı, belirtilmişse ondalık sayı değeri döndürür. Lütfen dikkat: Ondalık noktadan sonraki değer 5 veya daha büyükse değer +1'e yuvarlanır, aksi takdirde belirtilen ondalık basamak sayısına kadar olduğu gibi döndürülür.
Yuvarlamanın Ne Kadar Etkisi Olabilir? (Yuvarlama ve Kesme)
Yuvarlamanın etkisini göstermek için en iyi örnek borsa piyasasıdır. Geçmişte, yani 1982 yılında, Vancouver Menkul Kıymetler Borsası (VSE), her işlemde hisse senedi değerlerini üç ondalık basamağa kadar yuvarlardı.
Bu işlem her gün yaklaşık 3000 kez tekrarlandı. Biriken bu kesintiler, ayda yaklaşık 25 puanlık bir kayba yol açtı.
Değerleri yuvarlamaya karşı kesmenin bir örneği aşağıda gösterilmiştir.
Aşağıda oluşturulan kayan noktalı sayıları hisse senedi değerleri olarak düşünün. Şu anda, bunları 0.01 ile 0.05 arasında 1,000,000 saniyelik bir aralık için oluşturuyorum.
Örnekler:
arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]
Yuvarlamanın etkisini göstermek için, başlangıçta sayıları yalnızca 3 ondalık basamağa kadar kullanan, yani sayıyı 3 ondalık basamaktan sonra kesen küçük bir kod parçası yazdım.
Elimde orijinal toplam değer, kırpılmış değerlerden elde edilen toplam değer ve orijinal değer ile kırpılmış değer arasındaki fark var.
Aynı sayı kümesi üzerinde, 3 ondalık basamağa kadar round() yöntemini kullandım ve orijinal değer ile yuvarlanmış değer arasındaki toplamı ve farkı hesapladım.
İşte örnek ve çıktısı.
Örnek 1
import random def truncate(num): return int(num * 1000) / 1000 arr = [random.uniform(0.01, 0.05) for _ in range(1000000)] sum_num = 0 sum_truncate = 0 for i in arr: sum_num = sum_num + i sum_truncate = truncate(sum_truncate + i) print("Testing by using truncating upto 3 decimal places") print("The original sum is = ", sum_num) print("The total using truncate = ", sum_truncate) print("The difference from original - truncate = ", sum_num - sum_truncate) print("\n\n") print("Testing by using round() upto 3 decimal places") sum_num1 = 0 sum_truncate1 = 0 for i in arr: sum_num1 = sum_num1 + i sum_truncate1 = round(sum_truncate1 + i, 3) print("The original sum is =", sum_num1) print("The total using round = ", sum_truncate1) print("The difference from original - round =", sum_num1 - sum_truncate1)
Çıktı:
Testing by using truncating upto 3 decimal places The original sum is = 29985.958619386867 The total using truncate = 29486.057 The difference from original - truncate = 499.9016193868665 Testing by using round() up to 3 decimal places The original sum is = 29985.958619386867 The total using round = 29985.912 The difference from original - round = 0.04661938686695066
Orijinal ve yuvarlanmış değer arasındaki fark 499.9016193868665'tir ve yuvarlama işleminden sonra bu fark 0.04661938686695066'dır.
Aradaki fark oldukça büyük görünüyor ve örnek, round() yönteminin doğruluğa yakın hesaplamalar yapmaya nasıl yardımcı olduğunu gösteriyor.
Örnek: Yuvarlama Şamandırası Numbers
Bu programda, ondalıklı sayılarda yuvarlamanın nasıl çalıştığını göreceğiz.
# testing round() float_num1 = 10.60 # here the value will be rounded to 11 as after the decimal point the number is 6 that is >5 float_num2 = 10.40 # here the value will be rounded to 10 as after the decimal point the number is 4 that is <=5 float_num3 = 10.3456 # here the value will be 10.35 as after the 2 decimal points the value >=5 float_num4 = 10.3445 #here the value will be 10.34 as after the 2 decimal points the value is <5 print("The rounded value without num_of_decimals is :", round(float_num1)) print("The rounded value without num_of_decimals is :", round(float_num2)) print("The rounded value with num_of_decimals as 2 is :", round(float_num3, 2)) print("The rounded value with num_of_decimals as 2 is :", round(float_num4, 2))
Çıktı:
The rounded value without num_of_decimals is : 11 The rounded value without num_of_decimals is : 10 The rounded value with num_of_decimals as 2 is : 10.35 The rounded value with num_of_decimals as 2 is : 10.34
Örnek: Tam Sayı Değerlerini Yuvarlama
Bir tamsayı değerinde round() işlevini kullanırsanız, herhangi bir değişiklik yapmadan size yalnızca sayıyı geri döndürür.
# testing round() on a integer num = 15 print("The output is", round(num))
Çıktı:
The output is 15
Örnek: Negatifte Yuvarlama Numbers
Negatif sayılarda yuvarlamanın nasıl işlediğine dair birkaç örneğe bakalım.
# testing round() num = -2.8 num1 = -1.5 print("The value after rounding is", round(num)) print("The value after rounding is", round(num1))
Çıktı:
C:\pythontest>python testround.py The value after rounding is -3 The value after rounding is -2
Örnek: NumPy Dizilerini Yuvarlama
NumPy'de yuvarlama nasıl yapılır? diziler Python?
Bunu çözmek için, aşağıdaki örnekte gösterildiği gibi NumPy modülünü ve numpy.round() veya numpy.around() yöntemini kullanabiliriz.
Numpy.round()'u kullanma
# testing round() import numpy as np arr = [-0.341111, 1.455098989, 4.232323, -0.3432326, 7.626632, 5.122323] arr1 = np.round(arr, 2) print(arr1)
Çıktı:
C:\pythontest>python testround.py [-0.34 1.46 4.23 -0.34 7.63 5.12]
Yukarıda gösterilen numpy.round() ile aynı sonucu veren numpy.around() yöntemini de kullanabiliriz.
Örnek: Ondalık Modül
Round() işlevine ek olarak, Python Ondalık sayıları daha doğru bir şekilde işlemeye yardımcı olan bir ondalık modülüne sahiptir.
Ondalık sayı modülü, aşağıda gösterildiği gibi yuvarlama türleriyle birlikte gelir:
- YUVARLAK TAVAN: Sonsuzluğa doğru yuvarlanacaktır.
- AŞAĞI YUVARLAMA: Değeri sıfıra doğru yuvarlayacaktır.
- YUVARLAK ZEMİN: -Sonsuza doğru yuvarlanacaktır.
- YARIYA YUVARLAK AŞAĞI: Sıfıra doğru giderken en yakın değere yuvarlanacaktır.
- YARIM ÇİFT: En yakın çift sayıya yuvarlanacaktır.
- YARIYA YUVARLA: Sıfırdan uzaklaşarak en yakın değere yuvarlanacaktır.
- HESABI YUVARLAMAK: Değer sıfırdan uzaklaştıkça yuvarlama işlemi gerçekleşecektir.
Ondalık sayılarda, quantize() yöntemi sabit sayıda ondalık basamağa yuvarlamaya yardımcı olur ve aşağıdaki örnekte gösterildiği gibi kullanılacak yuvarlamayı belirtebilirsiniz.
Örnek: Round() ve ondalık yöntemleri kullanma
import decimal round_num = 15.456 final_val = round(round_num, 2) #Using decimal module final_val1 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_CEILING) final_val2 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_DOWN) final_val3 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_FLOOR) final_val4 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_DOWN) final_val5 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_EVEN) final_val6 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_UP) final_val7 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_UP) print("Using round()", final_val) print("Using Decimal - ROUND_CEILING ",final_val1) print("Using Decimal - ROUND_DOWN ",final_val2) print("Using Decimal - ROUND_FLOOR ",final_val3) print("Using Decimal - ROUND_HALF_DOWN ",final_val4) print("Using Decimal - ROUND_HALF_EVEN ",final_val5) print("Using Decimal - ROUND_HALF_UP ",final_val6) print("Using Decimal - ROUND_UP ",final_val7)
Çıktı:
Using round() 15.46 Using Decimal - ROUND_CEILING 15.46 Using Decimal - ROUND_DOWN 15.45 Using Decimal - ROUND_FLOOR 15.45 Using Decimal - ROUND_HALF_DOWN 15.46 Using Decimal - ROUND_HALF_EVEN 15.46 Using Decimal - ROUND_HALF_UP 15.46 Using Decimal - ROUND_UP 15.46
