logo

Cum să rotunjim numerele în Python?

În acest articol, vom discuta despre cum să rotunjim numerele în Python cu metode și exemple adecvate Cum să rotunjiți Piton .

Exemplu:

  Input:   3.5   Output:   4   Explanation:   Nearest whole number.   Input:   3.74   Output:   3.7   Explanation:   Rounded to one decimal place.>

Rotunjiți numerele în Python

Rotunjirea unui număr înseamnă simplificarea numărului, păstrând valoarea sa intactă, dar mai aproape de următorul număr. Există diverse metode de rotunjire a numerelor în Python, aici discutăm despre unele folosite în general Cum să rotunjiți în Python , Mai jos sunt următoarele puncte care vor fi acoperite în acest articol folosind Python:



  • Folosind funcția round() încorporată
  • Folosind Trunchiere concept
  • Folosind Math.ceil() și Math.floor() funcții
  • Folosind math.ceil
  • Folosind matematică.pardoseală
  • Folosind numpy> Modul
  • Folosind Rotunjire Conceptul de părtinire
  • Rotunjirea la jumătate de la zero în Python

Numere rotunde în Python u cânta Incorporat rundă() Funcţie

În Python, există un built-in funcția round(). care rotunjește un număr la numărul dat de cifre. Funcția round() acceptă două argumente numerice, n și n cifre, iar apoi returnează numărul n după ce îl rotunjește la n cifre. Dacă numărul de cifre nu este furnizat pentru rotunjire, funcția rotunjește numărul dat n la cel mai apropiat număr întreg.

java lambda

Exemplu: În acest exemplu, codul de mai jos prezintă funcția `round()` pentru numere întregi și numere în virgulă mobilă. De asemenea, ilustrează rotunjirea la două zecimale, demonstrând cazurile în care următoarea cifră este 5, mai mare decât 5 și mai mică de 5.

python3




# For integers> print>(>round>(>11>))> # For floating point> print>(>round>(>22.7>))> # if the second parameter is present> # when the (ndigit+1)th digit is =5> print>(>round>(>4.465>,>2>))> > # when the (ndigit+1)th digit is>=5>>> (>round>(>4.476>,>2>))> > # when the (ndigit+1)th digit is <5> print>(>round>(>4.473>,>2>))>

>

>

Ieșire:

11 23 4.46 4.48 4.47>

Numere rotunde în Python u cânta Trunchiere concept

În această funcție, fiecare cifră după o anumită poziție este înlocuită cu 0. python trunchia() funcţie poate fi folosit atât cu numere pozitive cât și cu numere negative. Funcția de trunchiere poate fi implementată în felul următor:

  • Înmulțirea numărului cu 10^p (10 ridicat la pthputere) pentru a deplasa punctul zecimal p locuri la dreapta.
  • Luând partea întreagă a noului număr folosind int().
  • Schimbarea zecimalei p plasează înapoi la stânga prin împărțirea la 10^p.

python3




# defining truncate function> # second argument defaults to 0> # so that if no argument is passed> # it returns the integer part of number> def> truncate(n, decimals>=> 0>):> >multiplier>=> 10> *>*> decimals> >return> int>(n>*> multiplier)>/> multiplier> print>(truncate(>16.5>))> print>(truncate(>->3.853>,>1>))> print>(truncate(>3.815>,>2>))> # we can truncate digits towards the left of the decimal point> # by passing a negative number.> print>(truncate(>346.8>,>->1>))> print>(truncate(>->2947.48>,>->3>))>

>

>

Ieșire:

16.0 -3.8 3.81 340.0 -2000.0>

Numere rotunde în Python u cânta Math.ceil() și Math.floor() funcții

Matematică . plafon() : Această funcție returnează cel mai apropiat număr întreg care este mai mare sau egal cu un anumit număr.
Math.floor() : Această funcție returnează cel mai apropiat număr întreg mai mic sau egal cu un anumit număr.

Exemplu : În acest exemplu, codul de mai jos utilizează biblioteca `math` pentru a calcula valorile plafonului pentru zecimale pozitive și negative cu `math.ceil` și valorile de etaj cu `math.floor`. Ieșirile sunt 5, 0, 2 și -1 pentru cazurile respective.

python3




# import math library> import> math> # ceil value for positive> # decimal number> print>(math.ceil(>4.2>))> # ceil value for negative> # decimal number> print>(math.ceil(>->0.5>))> # floor value for decimal> # and negative number> print>(math.floor(>2.2>))> print>(math.floor(>->0.5>))>

>

>

Ieșire:

5 0 2 -1>

Numere rotunde în Python u canta matematica.ceil

Rotunjirea unui număr implică deplasarea punctului zecimal la dreapta, rotunjirea în sus și apoi mutarea lui înapoi la stânga pentru precizie folosind ` math.ceil() ` și operații de înmulțire/împărțire.

Exemplu : În acest exemplu, codul de mai jos definește o funcție `round_up` folosind biblioteca `math`, care rotunjește un număr la o zecimală specificată. Utilizează înmulțirea, rotunjirea cu „math.ceil()” și împărțirea pentru precizie. Valorile pozitive și negative sunt testate pentru rotunjire.

python3




# import math library> import> math> # define a function for> # round_up> def> round_up(n, decimals>=> 0>):> >multiplier>=> 10> *>*> decimals> >return> math.ceil(n>*> multiplier)>/> multiplier> # passing positive values> print>(round_up(>2.1>))> print>(round_up(>2.23>,>1>))> print>(round_up(>2.543>,>2>))> # passing negative values> print>(round_up(>22.45>,>->1>))> print>(round_up(>2352>,>->2>))>

>

>

Ieșire:

3.0 2.3 2.55 30.0 2400.0>

Putem urma diagrama de mai jos pentru a înțelege rotunjirea în sus și rotunjirea în jos. Rotunjiți în sus la dreapta și în jos la stânga.

Înțelegerea rotunjirii în sus și a rotunjirii în jos

Rotunjirea în sus rotunjește întotdeauna un număr la dreapta pe linia numerică, iar rotunjirea în jos rotunjește întotdeauna un număr la stânga pe linia numerică.

Numere rotunde în Python u cânta matematică.pardoseală

În Rounding Down, un număr este rotunjit în jos la un anumit număr de cifre. Funcția de rotunjire în jos poate fi implementată în felul următor:

  • În primul rând, punctul zecimal din n este deplasat la numărul corect de locuri la dreapta prin înmulțirea n cu 10 ** zecimale.
  • Noua valoare este rotunjită în sus la cel mai apropiat număr întreg folosind math.floor() .
  • În cele din urmă, punctul zecimal este deplasat înapoi la stânga prin împărțirea la 10 ** zecimale.

python3




import> math> # defining a function for> # round down.> def> round_down(n, decimals>=>0>):> >multiplier>=> 10> *>*> decimals> >return> math.floor(n>*> multiplier)>/> multiplier> # passing different values to function> print>(round_down(>2.5>))> print>(round_down(>2.48>,>1>))> print>(round_down(>->0.5>))>

>

>

Ieșire:

2.0 2.4 -1.0>

Numere rotunde în Python u cânta Numpy Module

Modulul NumPy din Python oferă numpy.round()>funcţie pentru a rotunji numerele. Această funcție rotunjește fiecare element al unui tablou la cel mai apropiat număr întreg sau la numărul specificat de zecimale.

Exemplu: În acest exemplu, codul de mai jos folosește modulul NumPy pentru a crea o matrice `arr` și rotunjește fiecare element la cel mai apropiat număr întreg (`rounded_integers`) și la două zecimale (`rounded_decimals`). Rezultatele sunt apoi tipărite pentru afișare.

Python3




import> numpy as np> # Creating an array> arr>=> np.array([>1.234>,>2.567>,>3.789>])> # Rounding each element to the nearest integer> rounded_integers>=> np.>round>(arr)> # Rounding each element to two decimal places> rounded_decimals>=> np.>round>(arr, decimals>=>2>)> # Displaying the results> print>(>'Nearest integer:'>, rounded_integers)> print>(>'Decimal places:'>, rounded_decimals)>

>

>

Ieșire:

Nearest integer: [1. 3. 4.] Decimal places: [1.23 2.57 3.79]>

Numere rotunde în Python u cânta Prejudecata de rotunjire concept.

Conceptul de simetrie introduce noțiunea de părtinire a rotunjirii, care descrie modul în care rotunjirea afectează datele numerice dintr-un set de date.
Strategia de rotunjire în sus are o rotunjire spre infinit pozitiv, deoarece valoarea este întotdeauna rotunjită în sus în direcția infinitului pozitiv. În mod similar, strategia de rotunjire în jos are o rotunjire către o prejudecată negativă a infinitului. Strategia de trunchiere are o rotunjire spre infinit negativ pentru valorile pozitive și o rotunjire către infinit pozitiv pentru valorile negative. Se spune că funcțiile de rotunjire cu acest comportament au o rotunjire spre zero, în general.

a) Rotunjirea Jumătate în sus concept în Python

Rotunjirea la jumătate în sus rotunjește fiecare număr la cel mai apropiat număr cu precizia specificată și rupe egalitățile prin rotunjire în sus.
Strategia de rotunjire la jumătate în sus este implementată prin deplasarea punctului zecimal la dreapta cu numărul dorit de locuri. În acest caz, va trebui să stabilim dacă cifra de după virgulă zecimală deplasată este mai mică sau mai mare decât egală cu 5.
Putem adăuga 0,5 la valoarea care este deplasată și apoi o rotunjim în jos cu funcția math.floor().

Implementarea funcției round_half_up():

Exemplu: În acest exemplu, codul de mai jos definește `round_half_up`, o funcție de rotunjire personalizată care utilizează metoda rotunjire jumătate în sus cu `math.floor()` pentru precizie. Demonstrațiile includ numere pozitive și negative cu diferite zecimale.

python3




import> math> # defining round_half_up> def> round_half_up(n, decimals>=>0>):> >multiplier>=> 10> *>*> decimals> >return> math.floor(n>*> multiplier>+> 0.5>)>/> multiplier> # passing different values to the function> print>(round_half_up(>1.28>,>1>))> print>(round_half_up(>->1.5>))> print>(round_half_up(>->1.225>,>2>))>

>

>

Ieșire:

1.3 -1.0 -1.23>

b) Rotunjirea Jumătate în jos concept în Python

Aceasta se rotunjește la cel mai apropiat număr similar cu metoda de rotunjire la jumătate în sus, diferența este că rupe legăturile prin rotunjirea la cel mai mic dintre cele două numere. Strategia de rotunjire pe jumătate în jos este implementată prin înlocuirea math.floor() în funcția round_half_up() cu math.ceil() și apoi prin scăderea 0,5 în loc de adunare.

Implementarea funcției round_half_down():

În acest exemplu, codul de mai jos definește `round_half_down` folosind biblioteca `math` pentru a obține comportamentul round-half_down. Utilizează înmulțirea, scăderea și `math.ceil()` pentru rotunjirea la zero. Cazurile de testare includ zecimale pozitive și negative, rotunjite la o zecimală.

python3




# import math library> import> math> # defining a function> # for round_half_down> def> round_half_down(n, decimals>=>0>):> >multiplier>=> 10> *>*> decimals> >return> math.ceil(n>*> multiplier>-> 0.5>)>/> multiplier> # passing different values to the function> print>(round_half_down(>2.5>))> print>(round_half_down(>->2.5>))> print>(round_half_down(>2.25>,>1>))>

>

>

Ieșire:

2.0 -3.0 2.2>

Rotunjirea la jumătate de la zero în Python

În Rounding Half Away From Zero, trebuie să începem ca de obicei prin deplasarea punctului zecimal la dreapta cu un anumit număr de locuri și apoi observați cifra (d) imediat la dreapta zecimalei din noul număr. Există patru cazuri de luat în considerare:

  • Dacă n este pozitiv și d>= 5, rotunjiți în sus
  • Dacă n este pozitiv și d = 5, rotunjiți în jos
  • Dacă n este negativ și d>= 5, rotunjiți în jos
  • Dacă n este negativ și d <5, rotunjiți în sus

După rotunjirea conform regulilor menționate mai sus, putem muta zecimala înapoi la stânga.

  • Rotunjirea la jumătate la par: Există o modalitate de a atenua distorsiunea de rotunjire în timp ce rotunjim valorile într-un set de date. Putem rotunji pur și simplu legăturile la cel mai apropiat număr par la precizia dorită. Strategia de rotunjire la jumătate la egală este strategia utilizată de round() încorporat în Python. The clasa zecimală oferă suport pentru aritmetica rapidă în virgulă mobilă zecimală rotunjită corect. Acest lucru oferă mai multe avantaje față de tipul de date float. Strategia de rotunjire implicită în modulul zecimal este ROUND_HALF_EVEN.

Exemplu: În acest exemplu, codul de mai jos folosește funcția `Decimal` din biblioteca `zecimal` pentru a reprezenta cu precizie numerele zecimale. Se contrastează cu crearea unui obiect `Decimal` dintr-un șir și direct dintr-un număr în virgulă mobilă. Funcția `quantize()` este apoi folosită pentru rotunjirea cu zecimale specificate, demonstrând precizia în aritmetica zecimală.

python3




# import Decimal function from> # decimal library> from> decimal>import> Decimal> print>(Decimal(>'0.1'>))> print>(Decimal(>0.1>))> # Rounding a Decimal number is> # done with the .quantize() function> # '1.0' in .quantize() determines the> # number of decimal places to round the number> print>(Decimal(>'1.65'>).quantize(Decimal(>'1.0'>)))> print>(Decimal(>'1.675'>).quantize(Decimal(>'1.00'>)))>

>

>

Ieșire:

0.1 0.1000000000000000055511151231257827021181583404541015625 1.6 1.68>