V tem članku bomo razpravljali o tem, kako zaokrožiti števila v Pythonu z ustreznimi metodami in primeri Kako zaokrožiti Python .
primer:
Input: 3.5 Output: 4 Explanation: Nearest whole number. Input: 3.74 Output: 3.7 Explanation: Rounded to one decimal place.>
Zaokrožite števila v Pythonu
Zaokroževanje števila pomeni poenostavitev števila tako, da njegova vrednost ostane nedotaknjena, vendar bližje naslednjemu številu. Obstajajo različne metode za zaokroževanje števil v Pythonu, tukaj razpravljamo o nekaterih, ki se običajno uporabljajo Kako zaokrožiti v Pythonu , Spodaj so naslednje točke, ki bodo obravnavane v tem članku z uporabo Pythona:
- Uporaba vgrajene funkcije round().
- Uporaba Obrezovanje koncept
- Uporaba Math.ceil() in Math.floor() funkcije
- Uporaba math.ceil
- Uporaba math.floor
- Uporabljati
numpy>Modul - Uporabljati Zaokroževanje Koncept pristranskosti
- Zaokroževanje polovice stran od ničle v Pythonu
Okrogla števila v Pythonu u peti Vgrajena krog() funkcija
V Pythonu je vgrajena funkcija round(). ki zaokroži število na dano število števk. Funkcija round() sprejme dva številska argumenta, n in n števk, nato pa vrne število n, potem ko ga zaokroži na n števk. Če število števk ni predvideno za zaokroževanje, funkcija dano število n zaokroži na najbližje celo število.
enakost nizov v Javi
Primer: V tem primeru spodnja koda prikazuje funkcijo `round()` za cela števila in števila s plavajočo vejico. Ponazarja tudi zaokroževanje na dve decimalni mesti in prikazuje primere, ko je naslednja številka 5, večja od 5 in manjša od 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>))> |
>
>
Izhod:
11 23 4.46 4.48 4.47>
Okrogla števila v Pythonu u peti Obrezovanje koncept
V tej funkciji se vsaka številka za danim položajem nadomesti z 0. python skrajšaj() funkcijo se lahko uporablja tako s pozitivnimi kot z negativnimi števili. Funkcijo obrezovanja je mogoče implementirati na naslednji način:
- Množenje števila z 10^p (10 dvignjeno na pthmoč), da premaknete decimalno vejico p mest v desno.
- Vzemite celoštevilski del tega novega števila z int().
- Premik decimalke p postavi nazaj v levo z deljenjem z 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>))> |
>
>
Izhod:
16.0 -3.8 3.81 340.0 -2000.0>
Okrogla števila v Pythonu u peti Math.ceil() in Math.floor() funkcije
matematika . ceil() : Ta funkcija vrne najbližje celo število, ki je večje ali enako danemu številu.
Math.floor() : Ta funkcija vrne najbližje celo število, ki je manjše ali enako danemu številu.
Primer : V tem primeru spodnja koda uporablja knjižnico »math« za izračun zgornjih vrednosti za pozitivne in negativne decimalke z »math.ceil« in spodnjih vrednosti z »math.floor«. Izhodi so 5, 0, 2 in -1 za zadevne primere.
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>))> |
>
>
Izhod:
5 0 2 -1>
Okrogla števila v Pythonu u sing math.ceil
Zaokroževanje števila vključuje premik decimalne vejice v desno, zaokroževanje navzgor in nato premik nazaj v levo za natančnost z uporabo ` math.ceil() ` in operacije množenja/deljenja.
Primer : V tem primeru spodnja koda definira funkcijo `round_up` z uporabo knjižnice `math`, ki zaokroži število na določeno decimalno mesto. Za natančnost uporablja množenje, zaokroževanje z `math.ceil()` in deljenje. Pozitivne in negativne vrednosti se testirajo glede zaokroževanja.
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>))> |
>
>
Izhod:
3.0 2.3 2.55 30.0 2400.0>
Za razumevanje zaokroževanja navzgor in navzdol lahko sledimo spodnjemu diagramu. Zaokrožite navzgor v desno in navzdol v levo.

Zaokroževanje navzgor vedno zaokroži število v desno na številski premici, zaokroževanje navzdol pa vedno zaokroži število v levo na številski premici.
Okrogla števila v Pythonu u peti math.floor
Pri zaokroževanju navzdol je število zaokroženo navzdol na določeno število števk. Funkcijo zaokroževanja navzdol lahko izvedemo na naslednji način:
- Najprej se decimalna vejica v n premakne na pravilno število mest v desno tako, da se n pomnoži z 10 ** decimalk.
- Nova vrednost je zaokrožena navzgor na najbližje celo število z uporabo math.floor() .
- Na koncu se decimalna vejica premakne nazaj v levo z deljenjem z 10 ** decimalk.
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>))> |
>
>
Izhod:
2.0 2.4 -1.0>
Okrogla števila v Pythonu u pojte Numpy Module
Modul NumPy v Pythonu zagotavlja numpy.round()>funkcijo na okrogle številke. Ta funkcija zaokroži vsak element matrike na najbližje celo število ali na določeno število decimalnih mest.
Primer: V tem primeru spodnja koda uporablja modul NumPy za ustvarjanje matrike `arr` in zaokroži vsak element na najbližje celo število (`rounded_integers`) in na dve decimalni mesti (`rounded_decimals`). Rezultati se nato natisnejo za prikaz.
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)> |
>
>
Izhod:
Nearest integer: [1. 3. 4.] Decimal places: [1.23 2.57 3.79]>
Okrogla števila v Pythonu u peti Pristranskost zaokroževanja koncept.
Koncept simetrije uvaja pojem pristranskosti zaokroževanja, ki opisuje, kako zaokroževanje vpliva na številske podatke v naboru podatkov.
Strategija zaokroževanja ima pristranskost zaokroževanja proti pozitivni neskončnosti, saj je vrednost vedno zaokrožena navzgor v smeri pozitivne neskončnosti. Podobno ima strategija zaokroževanja navzdol zaokroževanje proti negativni neskončnosti. Strategija obrezovanja ima zaokroževanje proti negativni neskončnosti pri pozitivnih vrednostih in zaokroževanje proti pozitivni neskončnosti za negativne vrednosti. Na splošno naj bi imele funkcije zaokroževanja s tem vedenjem zaokroževanje proti ničelni pristranskosti.
a) Zaokroževanje na polovico navzgor koncept v Pythonu
Zaokroževanje na polovico zaokroži vsako število na najbližje število z določeno natančnostjo in prekine neodvisnosti z zaokroževanjem navzgor.
Strategija zaokroževanja na pol navzgor se izvede s premikom decimalne vejice v desno za želeno število mest. V tem primeru bomo morali ugotoviti, ali je številka za premaknjeno decimalno vejico manjša ali večja od enake 5.
Vrednosti, ki je premaknjena, lahko dodamo 0,5 in jo nato zaokrožimo navzdol s funkcijo math.floor().
Implementacija funkcije round_half_up():
primer: V tem primeru spodnja koda definira `round_half_up`, funkcijo zaokroževanja po meri, ki uporablja metodo zaokroževanja polovice navzgor z `math.floor()` za natančnost. Demonstracije vključujejo pozitivna in negativna števila z različnimi decimalnimi mesti.
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>))> |
>
>
Izhod:
1.3 -1.0 -1.23>
b) Zaokroževanje na polovico navzdol koncept v Pythonu
To zaokroži na najbližje število, podobno kot metoda zaokroževanja na pol navzgor, razlika je v tem, da prekine neodvisnost z zaokroževanjem na manjše od obeh števil. Strategija zaokroževanja polovice navzdol se izvede tako, da se math.floor() v funkciji round_half_up() zamenja z math.ceil() in nato z odštevanjem 0,5 namesto dodajanja.
Implementacija funkcije round_half_down():
V tem primeru spodnja koda definira `round_half_down` z uporabo knjižnice `math` za doseganje vedenja okroglo-pol-dol. Za zaokroževanje proti nič uporablja množenje, odštevanje in `math.ceil()`. Testni primeri vključujejo pozitivne in negativne decimalke, zaokrožene na eno decimalno mesto.
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>))> |
>
>
Izhod:
2.0 -3.0 2.2>
Zaokroževanje polovice stran od ničle v Pythonu
Pri zaokroževanju na polovico stran od nič moramo začeti kot običajno, tako da premaknemo decimalno vejico v desno za določeno število mest in nato opazimo števko (d) takoj desno od decimalne vejice v novem številu. Upoštevati je treba štiri primere:
- Če je n pozitiven in d>= 5, zaokrožite navzgor
- Če je n pozitiven in je d = 5, zaokrožite navzdol
- Če je n negativen in d>= 5, zaokrožite navzdol
- Če je n negativen in d <5, zaokrožite navzgor
Po zaokroževanju po zgoraj navedenih pravilih lahko decimalno mesto premaknemo nazaj v levo.
- Zaokroževanje polovice na celo: Obstaja način za ublažitev pristranskosti zaokroževanja, medtem ko zaokrožujemo vrednosti v naboru podatkov. Vezice lahko preprosto zaokrožimo na najbližje sodo število z želeno natančnostjo. Strategija zaokroževanja od polovice do celo je strategija, ki jo uporablja Pythonov vgrajeni round(). The decimalni razred zagotavlja podporo za hitro pravilno zaokroženo decimalno aritmetiko s plavajočo vejico. To nudi številne prednosti pred podatkovnim tipom float. Privzeta strategija zaokroževanja v decimalnem modulu je ROUND_HALF_EVEN.
primer: V tem primeru spodnja koda uporablja funkcijo `Decimal` iz knjižnice `decimal` za natančno predstavitev decimalnih števil. V nasprotju je z ustvarjanjem predmeta `Decimal` iz niza in neposredno iz števila s plavajočo vejico. Funkcija `quantize()` se nato uporabi za zaokroževanje z določenimi decimalnimi mesti, kar dokazuje natančnost decimalne aritmetike.
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'>)))> |
>
>
Izhod:
0.1 0.1000000000000000055511151231257827021181583404541015625 1.6 1.68>