ÖRNEKLER ile Python round () işlevi

İçindekiler:

Anonim

Yuvarlak ()

Round (), python ile kullanılabilen yerleşik bir işlevdir. Girdi olarak verilen ondalık basamağa yuvarlanacak bir kayan sayı döndürecektir.

Yuvarlanacak ondalık basamaklar belirtilmezse 0 olarak kabul edilir ve en yakın tam sayıya yuvarlanır.

Bu Python Dersinde şunları öğreneceksiniz:

  • Yuvarlak ()
  • Sözdizimi:
  • Yuvarlamanın Ne Kadar Etkisi Olabilir? (Yuvarlama - Kesme)
  • Örnek: Kayan Sayıları Yuvarlama
  • Örnek: Tamsayı Değerlerini Yuvarlama
  • Örnek: Negatif Sayılara Yuvarlama
  • Örnek: Round Numpy Arrays
  • Örnek: Ondalık Modül

Sözdizimi:

round(float_num, num_of_decimals)

Parametreler

  • float_num: yuvarlanacak kayan sayı.
  • num_of_decimals: (isteğe bağlı) Yuvarlama sırasında dikkate alınacak ondalık sayıların 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.

Açıklama

Round () yöntemi iki argüman alır

  • yuvarlanacak sayı ve
  • yuvarlarken dikkate alınması gereken ondalık basamaklar.

İkinci bağımsız değişken isteğe bağlıdır ve belirtilmediğinde varsayılan olarak 0'dır 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 bağımsız değişken mevcut olduğunda, verilen basamak sayısına yuvarlanacaktır. Dönüş türü bir kayan nokta olacaktır.

Ondalık basamaktan sonra sayı verilirse

  • > = 5'ten + 1 nihai değere eklenecektir
  • Nihai değerden <5, belirtilen ondalık basamağa kadar olduğu gibi geri dönecektir.

Geri dönüş değeri

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

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

Yuvarlamanın etkisini göstermenin en iyi örneği borsa piyasası içindir. Geçmişte, yani 1982 yılında Vancouver Menkul Kıymetler Borsası (VSE): hisse senedi değerlerini her işlemde üç ondalık basamağa düşürmek için kullanılırdı.

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

Aşağıda, yuvarlamaya karşı değerleri kesmenin bir örneği gösterilmektedir.

Aşağıda üretilen kayan nokta sayılarını stok değerleri olarak düşünün. Şu anda bir dizi için oluşturuyorum

0.01 ile 0.05 arasında 1.000.000 saniye.

Örnekler:

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

Yuvarlamanın etkisini göstermek için, küçük bir kod parçası yazdım, burada ilk başta yalnızca 3 ondalık basamağa kadar sayıları kullanmanız gerekir, yani sayıyı 3 ondalık basamaktan sonra kısaltmanız gerekir.

Orijinal toplam değere, kesilmiş değerlerden gelen toplama 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 toplamı ve orijinal değer ile yuvarlanan değer arasındaki farkı hesaplıyorum.

İşte örnek ve çıktı

örnek 1

import randomdef truncate(num):return int(num * 1000) / 1000arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]sum_num = 0sum_truncate = 0for i in arr:sum_num = sum_num + isum_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 = 0sum_truncate1 = 0for i in arr:sum_num1 = sum_num1 + isum_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 placesThe original sum is = 29985.958619386867The total using truncate = 29486.057The difference from original - truncate = 499.9016193868665Testing by using round() up to 3 decimal placesThe original sum is = 29985.958619386867The total using round = 29985.912The difference from original - round = 0.04661938686695066

Orijinal ile kırpmadan sonraki arasındaki fark 499.9016193868665 ve yuvarlaktan 0.04661938686695066'dır.

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

Örnek: Kayan Sayıları Yuvarlama

Bu programda, kayan sayılarda kelimelerin nasıl yuvarlandığı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 >5float_num2 = 10.40 # here the value will be rounded to 10 as after the decimal point the number is 4 that is <=5float_num3 = 10.3456 # here the value will be 10.35 as after the 2 decimal points the value >=5float_num4 = 10.3445 #here the value will be 10.34 as after the 2 decimal points the value is <5print("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 : 11The rounded value without num_of_decimals is : 10The rounded value with num_of_decimals as 2 is : 10.35The rounded value with num_of_decimals as 2 is : 10.34

Örnek: Tamsayı Değerlerini Yuvarlama

Bir tamsayı değerinde round () kullanırsanız, herhangi bir değişiklik olmadan size sayıyı geri döndürür.

# testing round() on a integernum = 15print("The output is", round(num))

Çıktı:

The output is 15

Örnek: Negatif Sayılara Yuvarlama

Negatif sayılarda yuvarlamanın nasıl çalıştığına dair birkaç örnek görelim

# testing round()num = -2.8num1 = -1.5print("The value after rounding is", round(num))print("The value after rounding is", round(num1))

Çıktı:

C:\pythontest>python testround.pyThe value after rounding is -3The value after rounding is -2

Örnek: Round Numpy Arrays

Python'da numpy dizileri nasıl yuvarlanır?

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 () kullanma

# testing round()import numpy as nparr = [-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österildiği gibi size aynı sonucu veren numpy.around () da 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üle sahiptir.

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

  • ROUND_CEILING: Sonsuzluk'a doğru döner,
  • ROUND_DOWN: değeri sıfıra yuvarlar,
  • ROUND_FLOOR: -Infinity'ye doğru yuvarlanacak,
  • ROUND_HALF_DOWN: sıfıra doğru giden en yakın değere yuvarlar,
  • ROUND_HALF_EVEN: değer en yakın çift tam sayıya giderek en yakına yuvarlanır,
  • ROUND_HALF_UP: sıfırdan uzaklaşan değerle en yakına yuvarlanır
  • ROUND_UP: değerin sıfırdan uzaklaşacağı yeri yuvarlayacaktır.

Ondalık olarak, 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.

Misal:

Round () ve ondalık yöntemleri kullanma

import decimalround_num = 15.456final_val = round(round_num, 2)#Using decimal modulefinal_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.46Using Decimal - ROUND_CEILING 15.46Using Decimal - ROUND_DOWN 15.45Using Decimal - ROUND_FLOOR 15.45Using Decimal - ROUND_HALF_DOWN 15.46Using Decimal - ROUND_HALF_EVEN 15.46Using Decimal - ROUND_HALF_UP 15.46Using Decimal - ROUND_UP 15.46

Özet:

  • Round (float_num, Num_of_decimals) python ile kullanılabilen yerleşik bir işlevdir. Girdi olarak verilen ondalık basamağa yuvarlanacak şamandıra numarasını size döndürecektir.
  • float_num: yuvarlanacak kayan sayı.
  • Num_of_decimals: Yuvarlama sırasında dikkate alınacak ondalık sayıların sayısıdır.
  • Ondalık_sayısı belirtilmezse bir tamsayı değeri ve ondalık_sayısı verilmişse bir kayan nokta değeri döndürür.