Python ÖRNEKLER ile round() işlevi

Yuvarlak()

Round(), python ile kullanılabilen yerleşik bir işlevdir. 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 kayan nokta sayısı.
  • num_of_decimals: (isteğe bağlı) Yuvarlama sırasında dikkate alınacak ondalık sayısı. İsteğe bağlıdır ve belirtilmezse varsayılan olarak 0 olur ve yuvarlama en yakın tam sayıya yapılır.

Tanım

Round() yöntemi 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 olur ve bu durumda en yakın tam sayıya yuvarlanır ve dönüş türü de bir tam sayı 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.

Ondalık basamaktan sonraki sayı verilirse

  • >=5 + 1'den son değere eklenecektir
  • Belirtilen ondalık basamağa kadar olduğu için nihai değer <5'ten dönecektir.

Geri dönüş değeri

Ondalık_sayısı belirtilmemişse bir tamsayı değeri, ondalık_sayısı verilmişse bir kayan değer döndürür. Ondalık noktadan sonraki değer >=1 ise değerin +5'e yuvarlanacağını, aksi takdirde belirtilen ondalık basamağa kadar olan değeri döndüreceğini lütfen unutmayın.

Yuvarlamanın Ne Kadar Etkisi Olabilir? (Yuvarlama ve Kesme)

Yuvarlamanın etkisini gösteren 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 kesmek için kullanılır.

Her gün neredeyse 3000 kez yapıldı. Biriken kesintiler ayda yaklaşık 25 puanlık bir kayba yol açıyor.

Değerleri yuvarlamaya karşı kesmenin bir örneği aşağıda gösterilmiştir.

Aşağıda oluşturulan kayan noktalı sayıları stok değerleri olarak düşünün. Şu anda bunu bir dizi ürün için üretiyorum

1,000,000 ile 0.01 arasında 0.05 saniye.

Örnekler:

arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]

Yuvarlamanın etkisini göstermek için küçük bir kod yazdım; burada ilk başta sayıları yalnızca 3 ondalık basamağa kadar kullanmanız gerekiyor, yani sayıyı 3 virgülden sonra kesmeniz gerekiyor.

Orijinal toplam değere, kesilmiş değerlerden gelen toplam ve orijinal ile kesilmiş değer arasındaki farka sahibim.

Aynı sayı kümesinde, 3 ondalık basamağa kadar round() yöntemini kullanıyorum ve orijinal değer ile yuvarlanmış değer arasındaki toplamı ve farkı hesaplıyorum.

İşte örnek ve çıktı
Ö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 ile kesme sonrası arasındaki fark 499.9016193868665, yuvarlaktan ise 0.04661938686695066'dır.

Fark çok büyük görünüyor ve örnek, round() yönteminin doğruluğa yakın hesaplamalarda nasıl yardımcı olduğunu gösteriyor.

Örnek: Yuvarlama Şamandırası Numbers

Bu programda kayan sayılarda yuvarlamanın nasıl yapıldığı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 çalıştığına dair birkaç örnek görelim

# 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: Yuvarlak Numpy Dizileri

Numpy nasıl yuvarlanır? python'daki diziler?

Bunu çözmek için aşağıdaki örnekte gösterildiği gibi numpy modülünü kullanabilir 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]

Aşağıdaki örnekte gösterilenle aynı sonucu veren numpy.around() işlevini de kullanabiliriz.

Örnek: Ondalık Modül

Round() işlevine ek olarak python, ondalık sayıların daha doğru şekilde işlenmesine yardımcı olan bir ondalık modüle sahiptir.

Decimal modülü aşağıda gösterildiği gibi yuvarlama türleriyle birlikte gelir:

  • ROUND_CEILING: Sonsuzluğa doğru yuvarlanacak,
  • ROUND_DOWN: değeri sıfıra doğru yuvarlar,
  • ROUND_FLOOR: -Sonsuzluğa doğru yuvarlanacak,
  • ROUND_HALF_DOWN: sıfıra doğru en yakın değere yuvarlanır,
  • ROUND_HALF_EVEN: en yakın çift tam sayıya yuvarlanır,
  • ROUND_HALF_UP: sıfırdan uzaklaşarak en yakın değere yuvarlanır
  • ROUND_UP: Değerin sıfırdan uzaklaşacağı yere yuvarlanır.

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

ÖZET

  • Round(float_num, Num_of_decimals), python ile kullanılabilen yerleşik bir işlevdir. Giriş olarak verilen ondalık basamaklara yuvarlanacak kayan noktalı sayıyı size döndürecektir.
  • float_num: yuvarlanacak kayan nokta sayısı.
  • Ondalık_Sayısı: Yuvarlama sırasında dikkate alınması gereken ondalık sayı sayısıdır.
  • Ondalık_sayısı belirtilmemişse bir tamsayı değeri, ondalık_sayısı verilmişse bir kayan değer döndürür.

Bu yazıyı şu şekilde özetleyin: