Tässä artikkelissa käsitellään lukujen pyöristämistä Pythonissa sopivilla menetelmillä ja esimerkeillä Kuinka pyöristää sisään Python .
Esimerkki:
Input: 3.5 Output: 4 Explanation: Nearest whole number. Input: 3.74 Output: 3.7 Explanation: Rounded to one decimal place.>
Pythonin lukujen pyöristys
Numeron pyöristäminen tarkoittaa luvun yksinkertaistamista pitämällä sen arvo ennallaan, mutta lähempänä seuraavaa numeroa. Pythonissa lukujen pyöristämiseen on useita menetelmiä, joista tässä keskustellaan joistakin yleisesti käytetyistä Kuinka pyöristää Pythonissa , Alla on seuraavat seikat, joita käsitellään tässä artikkelissa Pythonilla:
- Sisäänrakennetun round()-funktion käyttäminen
- Käyttämällä Katkaisu konsepti
- Käyttämällä Math.ceil() ja Math.floor() toimintoja
- Käyttämällä math.ceil
- Käyttämällä math.floor
- Käyttämällä
numpy>Moduuli - Käyttämällä Pyöristys Bias käsite
- Pythonissa pyöristäminen puoleen nollasta
Pyöreät numerot Pythonissa u laulaa Sisäänrakennettu pyöristää() Toiminto
Pythonissa on sisäänrakennettu round()-funktio joka pyöristää luvun annettuun lukumäärään numeroita. Funktio round() hyväksyy kaksi numeerista argumenttia, n ja n numeroa, ja palauttaa sitten luvun n pyöristettyään sen n numeroon. Jos pyöristystä varten ei ole annettu numeroiden määrää, funktio pyöristää annetun luvun n lähimpään kokonaislukuun.
pythonin koko
Esimerkki: Tässä esimerkissä alla oleva koodi esittelee `round()`-funktion kokonaisluvuille ja liukulukuille. Se havainnollistaa myös pyöristämistä kahteen desimaaliin ja osoittaa tapaukset, joissa seuraava numero on 5, suurempi kuin 5 ja pienempi kuin 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>))> |
>
>
Lähtö:
11 23 4.46 4.48 4.47>
Pyöreät numerot Pythonissa u laulaa Katkaisu konsepti
Tässä funktiossa jokainen tietyn paikan jälkeen oleva numero korvataan 0. pythonilla katkaista() toiminto voidaan käyttää sekä positiivisten että negatiivisten lukujen kanssa. Katkaisufunktio voidaan toteuttaa seuraavalla tavalla:
- Numeron kertominen luvulla 10^p (10 korotettu p:äänthpower) siirtääksesi desimaalipilkun p paikkaa oikealle.
- Uuden luvun kokonaislukuosan ottaminen käyttämällä int(:tä).
- Desimaalipaikan p siirtäminen takaisin vasemmalle jakamalla luvulla 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>))> |
>
>
Lähtö:
16.0 -3.8 3.81 340.0 -2000.0>
Pyöreät numerot Pythonissa u laulaa Math.ceil() ja Math.floor() toimintoja
Matematiikka . ceil() : Tämä funktio palauttaa lähimmän kokonaisluvun, joka on suurempi tai yhtä suuri kuin annettu luku.
Math.floor() : Tämä funktio palauttaa lähimmän kokonaisluvun, joka on pienempi tai yhtä suuri kuin annettu luku.
Esimerkki :Tässä esimerkissä alla oleva koodi käyttää 'math'-kirjastoa laskemaan yläraja-arvoja positiivisille ja negatiivisille desimaaliluvuille 'math.ceil'-arvolla ja pohja-arvoilla 'math.floor'. Lähdöt ovat 5, 0, 2 ja -1 vastaaville tapauksille.
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>))> |
>
>
Lähtö:
5 0 2 -1>
Pyöreät numerot Pythonissa u laula math.ceil
Numeron pyöristäminen sisältää desimaalipilkun siirtämisen oikealle, pyöristyksen ylöspäin ja sen siirtämisen sitten takaisin vasemmalle tarkkuuden vuoksi käyttämällä ` math.ceil() ` ja kerto-/jakooperaatiot.
Esimerkki :Tässä esimerkissä alla oleva koodi määrittää pyöristys-up-funktion käyttämällä 'math'-kirjastoa, joka pyöristää luvun tiettyyn desimaaliin. Se käyttää kertolaskua, pyöristystä 'math.ceil()':llä ja jakoa tarkkuuden vuoksi. Positiiviset ja negatiiviset arvot testataan pyöristystä varten.
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>))> |
>
>
Lähtö:
3.0 2.3 2.55 30.0 2400.0>
Voimme seurata alla olevaa kaaviota ymmärtääksemme pyöristyksen ylös ja alas. Pyöristä ylös oikealle ja alas vasemmalle.

Pyöristys ylöspäin pyöristää aina luvun numerorivillä oikealle ja alaspäin pyöristää aina numeron vasemmalle numerorivillä.
Pyöreät numerot Pythonissa u laulaa math.floor
Pyöristämisessä alaspäin luku pyöristetään alaspäin tiettyyn määrään numeroita. Pyöristys alaspäin voidaan toteuttaa seuraavalla tavalla:
- Ensin n:n desimaalipilkku siirretään oikeaan määrään paikkoja oikealle kertomalla n 10 ** desimaalilla.
- Uusi arvo pyöristetään ylöspäin lähimpään kokonaislukuun käyttämällä math.floor() .
- Lopuksi desimaalipilkku siirretään takaisin vasemmalle jakamalla 10 ** desimaaliluvulla.
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>))> |
>
>
Lähtö:
2.0 2.4 -1.0>
Pyöreät numerot Pythonissa u laulaa Numpy Module
Pythonin NumPy-moduuli tarjoaa numpy.round()>toiminto pyöristää numeroita. Tämä funktio pyöristää taulukon jokaisen alkion lähimpään kokonaislukuun tai tiettyyn desimaalien määrään.
Esimerkki: Tässä esimerkissä alla oleva koodi käyttää NumPy-moduulia luomaan taulukon 'arr' ja pyöristää jokaisen elementin lähimpään kokonaislukuun ('pyöristetyt_kokonaisluvut') ja kahteen desimaaliin ('pyöristetyt_decimaalit'). Tulokset tulostetaan sitten näyttöä varten.
Python 3
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)> |
>
>
Lähtö:
Nearest integer: [1. 3. 4.] Decimal places: [1.23 2.57 3.79]>
Pyöreät numerot Pythonissa u laulaa Pyöristysharha konsepti.
Symmetrian käsite ottaa käyttöön pyöristysbiasin käsitteen, joka kuvaa kuinka pyöristys vaikuttaa tietojoukon numeeriseen dataan.
Pyöristysstrategiassa on kierros kohti positiivista äärettömyyttä, koska arvo pyöristetään aina ylöspäin positiivisen äärettömyyden suuntaan. Samoin pyöristys alaspäin strategialla on kierros kohti negatiivista äärettömyyttä. Katkaisustrategiassa on kierros kohti negatiivista ääretöntä positiivisia arvoja ja kierros kohti positiivista ääretöntä negatiivisille arvoille. Pyöristysfunktioilla, joilla on tämä käyttäytyminen, sanotaan yleensä olevan pyöreä kohti nollabiasia.
a) Pyöristys puoli ylöspäin konsepti Pythonissa
Pyöristys puolikas pyöristää jokaisen luvun lähimpään numeroon määritetyllä tarkkuudella ja katkaisee siteet pyöristämällä ylöspäin.
Pyöristyspuoli ylöspäin -strategia toteutetaan siirtämällä desimaalipilkkua oikealle halutulla määrällä. Tässä tapauksessa meidän on määritettävä, onko siirretyn desimaalipilkun jälkeinen numero pienempi tai suurempi kuin 5.
Voimme lisätä 0,5 siirrettävään arvoon ja pyöristää sen sitten alas funktiolla math.floor().
Round_half_up()-funktion toteutus:
Esimerkki: Tässä esimerkissä alla oleva koodi määrittelee 'round_half_up', mukautetun pyöristysfunktion, joka käyttää pyöristys puoli ylöspäin -menetelmää ja 'math.floor()' tarkkuuden vuoksi. Demonstraatioissa on positiivisia ja negatiivisia lukuja eri desimaaleilla.
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>))> |
>
>
Lähtö:
1.3 -1.0 -1.23>
b) Pyöristys puoli alaspäin konsepti Pythonissa
Tämä pyöristää lähimpään numeroon, joka on samanlainen kuin pyöristys puoli ylöspäin. Erona on, että se katkaisee siteet pyöristämällä pienempään kahdesta numerosta. Pyöristysstrategia toteutetaan korvaamalla math.floor() round_half_up()-funktiossa math.ceil()-funktiolla ja sitten vähentämällä 0,5 lisäämisen sijaan.
Round_half_down()-funktion toteutus:
Tässä esimerkissä alla oleva koodi määrittelee 'round_half_down' käyttämällä 'math'-kirjastoa saavuttaakseen round-half-down -käyttäytymisen. Se käyttää kerto-, vähennys- ja `math.ceil()-funktiota pyöristämään nollaa kohti. Testitapaukset sisältävät positiivisia ja negatiivisia desimaaleja pyöristettynä yhteen desimaaliin.
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>))> |
>
>
Lähtö:
2.0 -3.0 2.2>
Pythonissa pyöristäminen puoleen nollasta
Pyöristys puoleen nollasta -kohdassa meidän on aloitettava tavalliseen tapaan siirtämällä desimaalipilkku oikealle tietyn määrän paikkoja ja sitten havaittava numero (d) heti desimaalipisteen oikealla puolella uudessa numerossa. Harkittavia tapauksia on neljä:
- Jos n on positiivinen ja d>= 5, pyöristä ylöspäin
- Jos n on positiivinen ja d = 5, pyöristä alaspäin
- Jos n on negatiivinen ja d>= 5, pyöristä alaspäin
- Jos n on negatiivinen ja d <5, pyöristä ylöspäin
Pyöristämisen jälkeen edellä mainittujen sääntöjen mukaisesti voimme siirtää desimaalipistettä takaisin vasemmalle.
- Puolesta tasolle pyöristäminen: On olemassa tapa lieventää pyöristysharhaa, kun pyöristetään arvoja tietojoukossa. Voimme yksinkertaisesti pyöristää siteet lähimpään parilliseen numeroon halutulla tarkkuudella. Pythonin sisäänrakennetun round() pyöristysstrategia on strategia, jota käyttää Pythonin sisäänrakennettu round(). The desimaaliluokka tukee nopeaa oikein pyöristettyä desimaaliliukulukuaritmetiikkaa. Tämä tarjoaa useita etuja float-tietotyyppiin verrattuna. Oletusarvoinen pyöristysstrategia desimaalimoduulissa on ROUND_PUOLI_EVEN.
Esimerkki: Tässä esimerkissä alla oleva koodi käyttää desimaalikirjaston desimaalifunktiota esittämään desimaaliluvut tarkasti. Se erottelee 'desimaali'-objektin luomisen merkkijonosta ja suoraan liukulukusta. 'Quantize()'-funktiota käytetään sitten pyöristämään määrätyillä desimaaleilla, mikä osoittaa desimaaliaritmeettisen tarkkuuden.
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'>)))> |
>
>
Lähtö:
0.1 0.1000000000000000055511151231257827021181583404541015625 1.6 1.68>