Funcția Python round () cu EXEMPLE

Cuprins:

Anonim

Rundă()

Round () este o funcție încorporată disponibilă cu python. Vă va întoarce un număr float care va fi rotunjit la zecimale care sunt date ca intrare.

Dacă nu sunt specificate zecimale care trebuie rotunjite, se consideră 0 și se va rotunji la cel mai apropiat număr întreg.

În acest tutorial Python, veți învăța:

  • Rundă()
  • Sintaxă:
  • Cât de mult impact poate avea rotunjirea? (Rotunjire vs Trunchiere)
  • Exemplu: rotunjirea numerelor plutitoare
  • Exemplu: rotunjirea valorilor întregi
  • Exemplu: rotunjirea numerelor negative
  • Exemplu: matrice rotunde
  • Exemplu: modul zecimal

Sintaxă:

round(float_num, num_of_decimals)

Parametrii

  • float_num: numărul de float care trebuie rotunjit.
  • num_of_decimals: (opțional) Numărul de zecimale care trebuie luate în considerare la rotunjire. Este opțional și, dacă nu este specificat, implicit la 0, iar rotunjirea se face la cel mai apropiat număr întreg.

Descriere

Metoda round () are două argumente

  • numărul de rotunjit și
  • zecimale pe care ar trebui să le ia în considerare în timpul rotunjirii.

Al doilea argument este opțional și implicit la 0 când nu este specificat și, în acest caz, se va rotunji la cel mai apropiat număr întreg, iar tipul returnat va fi, de asemenea, un număr întreg.

Atunci când zecimale, adică al doilea argument, este prezent, se va rotunji la numărul de locuri date. Tipul de returnare va fi float.

Dacă numărul după zecimalul dat

  • > = 5 decât + 1 va fi adăugat la valoarea finală
  • <5 decât valoarea finală va reveni, deoarece este până la zecimale menționate.

Valoare returnată

Acesta va returna o valoare întreagă dacă nu este dat num_of_decimals și o valoare float dacă este dat num_of_decimals. Vă rugăm să rețineți că valoarea va fi rotunjită la +1 dacă valoarea după punctul zecimal este> = 5 altfel va returna valoarea deoarece este până la zecimalele menționate.

Cât de mult impact poate avea rotunjirea? (Rotunjire vs Trunchiere)

Cel mai bun exemplu pentru a arăta impactul rotunjirii este pentru piața bursieră. În trecut, adică în anul 1982, bursa de la Vancouver (VSE): folosită pentru a trunchia valorile stocului la trei zecimale pe fiecare tranzacție.

S-a făcut de aproape 3000 de ori în fiecare zi. Trunchierile acumulate duc la o pierdere de aproximativ 25 de puncte pe lună.

Un exemplu de tăiere a valorilor față de rotunjire este prezentat mai jos.

Luați în considerare numerele cu virgulă mobilă generate mai jos ca valori stoc. Chiar acum îl generez pentru o serie de

1.000.000 de secunde între 0,01 și 0,05.

Exemple:

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

Pentru a arăta impactul rotunjirii, am scris o mică bucată de cod în care, la început, trebuie să utilizați numerele până la doar 3 zecimale, adică trunchierea numărului după 3 zecimale.

Am valoarea totală originală, totalul provine din valorile trunchiate și diferența dintre valoarea originală și valoarea trunchiată.

Pe același set de numere, am folosit metoda round () până la 3 zecimale și am calculat suma și diferența dintre valoarea inițială și valoarea rotunjită.

Iată exemplul și rezultatul

Exemplul 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)

Ieșire:

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

Diferența dintre original și după trunchiere este de 499.9016193868665, iar din rotund este de 0,04661938686695066

Diferența pare a fi foarte mare, iar exemplul arată cum metoda round () ajută la calcularea aproape de precizie.

Exemplu: rotunjirea numerelor plutitoare

În acest program, vom vedea cum se rotunjesc cuvintele pe numerele plutitoare

# 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))

Ieșire:

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

Exemplu: rotunjirea valorilor întregi

Dacă se întâmplă să utilizați round () pe o valoare întreagă, acesta vă va returna numărul înapoi fără modificări.

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

Ieșire:

The output is 15

Exemplu: rotunjirea numerelor negative

Să vedem câteva exemple despre cum funcționează rotunjirea la numerele negative

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

Ieșire:

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

Exemplu: matrice rotunde

Cum se rotunjesc matrici numpy în python?

Pentru a rezolva acest lucru, putem folosi modulul numpy și putem folosi metoda numpy.round () sau numpy.around (), așa cum se arată în exemplul de mai jos.

Utilizarea numpy.round ()

# 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)

Ieșire:

C:\pythontest>python testround.py[-0.34 1.46 4.23 -0.34 7.63 5.12]

De asemenea, putem folosi numpy.around (), care vă oferă același rezultat ca în exemplul de mai jos.

Exemplu: modul zecimal

În plus față de funcția round (), python are un modul zecimal care ajută la gestionarea mai precisă a numerelor zecimale.

Modulul Zecimal vine cu tipuri de rotunjire, după cum se arată mai jos:

  • ROUND_CEILING: se va rotunji spre Infinity,
  • ROUND_DOWN: va rotunji valoarea la zero,
  • ROUND_FLOOR: se va rotunji spre -Infinity,
  • ROUND_HALF_DOWN: se va rotunji la cea mai apropiată valoare mergând spre zero,
  • ROUND_HALF_EVEN: se va rotunji la cel mai apropiat cu valoarea mergând la cel mai apropiat număr întreg,
  • ROUND_HALF_UP: se va rotunji la cel mai apropiat, cu o valoare de la zero
  • ROUND_UP: va rotunji unde valoarea va merge de la zero.

În zecimal, metoda quantize () ajută la rotunjirea la un număr fix de zecimale și puteți specifica rotunjirea care trebuie utilizată, așa cum se arată în exemplul de mai jos.

Exemplu:

Folosind metode round () și zecimale

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)

Ieșire:

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

Rezumat:

  • Round (float_num, Num_of_decimals) este o funcție încorporată disponibilă cu python. Vă va întoarce numărul flotant care va fi rotunjit la zecimale care sunt date ca intrare.
  • float_num: numărul de float care trebuie rotunjit.
  • Num_of_decimals: este numărul de zecimale care trebuie luate în considerare la rotunjire.
  • Acesta va returna o valoare întreagă dacă nu este dat num_of_decimals și o valoare float dacă este dat num_of_decimals.