Ako zaokrúhľovať čísla v Pythone?

Ako zaokrúhľovať čísla v Pythone?

V tomto článku budeme diskutovať o tom, ako zaokrúhľovať čísla v Pythone s vhodnými metódami a príkladmi Ako zaokrúhliť nahor Python .

Príklad:

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

Zaokrúhliť čísla v Pythone

Zaokrúhlenie čísla znamená zjednodušenie čísla tým, že jeho hodnota zostane nedotknutá, ale bližšie k ďalšiemu číslu. Existujú rôzne metódy na zaokrúhľovanie čísel v Pythone, tu diskutujeme o niektorých všeobecne používaných Ako zaokrúhliť v Pythone , Nižšie sú uvedené nasledujúce body, ktoré budú zahrnuté v tomto článku pomocou Pythonu:

  • Použitie vstavanej funkcie round().
  • Použitím Skrátenie koncepcie
  • Použitím Math.ceil() a Math.floor() funkcie
  • Použitím math.ceil
  • Použitím matematika.podlaha
  • Pomocou numpy> modul
  • Pomocou Zaokrúhľovanie Koncept zaujatosti
  • Zaokrúhlenie na polovicu od nuly v Pythone

Zaokrúhlené čísla v jazyku Python u spievať Vstavaný okrúhly() Funkcia

V Pythone je vstavaný funkcia round(). ktorý zaokrúhli číslo na daný počet číslic. Funkcia round() akceptuje dva číselné argumenty, n a n číslic, a potom vráti číslo n po zaokrúhlení na n číslic. Ak nie je uvedený počet číslic na zaokrúhlenie, funkcia zaokrúhli dané číslo n na najbližšie celé číslo.

Príklad: V tomto príklade nižšie uvedený kód predstavuje funkciu `round()` pre celé čísla a čísla s pohyblivou rádovou čiarkou. Znázorňuje tiež zaokrúhľovanie na dve desatinné miesta, čo demonštruje prípady, keď je ďalšia číslica 5, väčšia ako 5 a menšia ako 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> print> (> round> (> 4.476> ,> 2> ))> > # when the (ndigit+1)th digit is <5> print> (> round> (> 4.473> ,> 2> ))>

Výkon:

11 23 4.46 4.48 4.47 

Zaokrúhlené čísla v jazyku Python u spievať Skrátenie koncepcie

V tejto funkcii je každá číslica po danej pozícii nahradená 0. python skrátiť () funkciu možno použiť s kladnými aj zápornými číslami. Funkciu skrátenia je možné implementovať nasledujúcim spôsobom:

  • Vynásobením čísla 10^p (10 zvýšené na p th mocnina) na posunutie desatinnej čiarky o p miest doprava.
  • Prevzatie celej časti tohto nového čísla pomocou int().
  • Posun desatinného miesta p miest späť doľava vydelením 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> ))>

Výkon:

16.0 -3.8 3.81 340.0 -2000.0 

Zaokrúhlené čísla v jazyku Python u spievať Math.ceil() a Math.floor() funkcie

Matematika . ceil() : Táto funkcia vráti najbližšie celé číslo, ktoré je väčšie alebo rovné danému číslu.
Math.floor() : Táto funkcia vráti najbližšie celé číslo menšie alebo rovné danému číslu.

Príklad :V tomto príklade kód uvedený nižšie využíva knižnicu „math“ na výpočet maximálnych hodnôt pre kladné a záporné desatinné miesta s hodnotou „math.ceil“ a minimálne hodnoty s hodnotou „math.floor“. Výstupy sú 5, 0, 2 a -1 pre príslušné prípady.

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

Výkon:

5 0 2 -1 

Zaokrúhlené čísla v jazyku Python u spievať matematiku.ceil

Zaokrúhľovanie čísla nahor zahŕňa posunutie desatinnej čiarky doprava, zaokrúhlenie nahor a následné posunutie späť doľava pre presnosť pomocou ` math.ceil() ` a operácie násobenia/delenia.

Príklad :V tomto príklade nižšie uvedený kód definuje funkciu `round_up` pomocou knižnice `math`, ktorá zaokrúhľuje číslo na zadané desatinné miesto. Pre presnosť využíva násobenie, zaokrúhľovanie pomocou `math.ceil()` a delenie. Kladné a záporné hodnoty sa testujú na zaokrúhľovanie.

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

Výkon:

3.0 2.3 2.55 30.0 2400.0 

Môžeme postupovať podľa nižšie uvedeného diagramu, aby sme pochopili zaokrúhlenie nahor a nadol. Zaokrúhlite hore doprava a dole doľava.

Pochopenie zaokrúhľovania nahor a nadol

Zaokrúhľovaním nahor sa vždy zaokrúhli číslo na číselnej osi doprava a zaokrúhlením nadol sa vždy zaokrúhli číslo na číselnej osi doľava.

Zaokrúhlené čísla v jazyku Python u spievať matematika.podlaha

Pri zaokrúhľovaní nadol sa číslo zaokrúhľuje nadol na určený počet číslic. Funkciu zaokrúhľovania nadol možno implementovať nasledujúcim spôsobom:

  • Najprv sa desatinná čiarka v n posunie na správny počet miest doprava vynásobením n 10 ** desatinnými miestami.
  • Nová hodnota sa zaokrúhli nahor na najbližšie celé číslo pomocou math.floor() .
  • Nakoniec sa desatinná čiarka posunie späť doľava vydelením 10 ** desatinnými miestami.

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

Výkon:

2.0 2.4 -1.0 

Zaokrúhlené čísla v jazyku Python u spievať Numpy Module

Modul NumPy v Pythone poskytuje numpy.round()> funkciu zaokrúhliť čísla. Táto funkcia zaokrúhli každý prvok poľa na najbližšie celé číslo alebo na zadaný počet desatinných miest.

Príklad: V tomto príklade kód uvedený nižšie používa modul NumPy na vytvorenie poľa „arr“ a zaokrúhli každý prvok na najbližšie celé číslo („rounded_integers“) a na dve desatinné miesta („rounded_decimals“). Výsledky sa potom vytlačia na zobrazenie.

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

Výkon :

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

Zaokrúhlené čísla v jazyku Python u spievať Zaokrúhľovanie koncepcie.

Koncept symetrie zavádza pojem skreslenia zaokrúhľovania, ktorý opisuje, ako zaokrúhľovanie ovplyvňuje číselné údaje v množine údajov.
Stratégia zaokrúhľovania má zaokrúhlenie smerom k kladnému nekonečnu, pretože hodnota je vždy zaokrúhlená nahor v smere kladného nekonečna. Podobne aj stratégia zaokrúhľovania nadol má zaokrúhlenie smerom k zápornému nekonečnu. Stratégia skrátenia má zaokrúhlenie smerom k zápornému nekonečnu pre kladné hodnoty a zaokrúhlenie smerom k kladnému nekonečnu pre záporné hodnoty. Hovorí sa, že funkcie zaokrúhľovania s týmto správaním majú vo všeobecnosti zaokrúhlenie smerom k nule.

a) Zaokrúhlenie na polovicu koncept v Pythone

Polovičné zaokrúhľovanie zaokrúhli každé číslo na najbližšie číslo so zadanou presnosťou a preruší remízu zaokrúhlením nahor.
Stratégia zaokrúhľovania na polovicu sa realizuje posunutím desatinnej čiarky doprava o požadovaný počet miest. V tomto prípade budeme musieť určiť, či číslica za posunutou desatinnou čiarkou je menšia alebo väčšia ako rovná 5.
K hodnote, ktorá je posunutá, môžeme pridať 0,5 a potom ju zaokrúhliť nadol pomocou funkcie math.floor().

Implementácia funkcie round_half_up():

Príklad: V tomto príklade nižšie uvedený kód definuje `round_half_up`, vlastnú funkciu zaokrúhľovania využívajúcu metódu round half up s `math.floor()` kvôli presnosti. Ukážky zahŕňajú kladné a záporné čísla s rôznymi desatinnými miestami.

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

Výkon:

1.3 -1.0 -1.23 

b) Zaokrúhlenie na polovicu koncept v Pythone

Toto sa zaokrúhľuje na najbližšie číslo podobne ako pri metóde zaokrúhľovania na polovicu, rozdiel je v tom, že preruší remízu zaokrúhlením na menšie z dvoch čísel. Stratégia zaokrúhlenia o polovicu nadol sa implementuje nahradením math.floor() vo funkcii round_half_up() za math.ceil() a potom odčítaním 0,5 namiesto sčítania.

Implementácia funkcie round_half_down():

V tomto príklade nižšie uvedený kód definuje `round_half_down` pomocou knižnice `math` na dosiahnutie správania zaokrúhleného na polovicu. Na zaokrúhľovanie smerom k nule využíva násobenie, odčítanie a `math.ceil()`. Testovacie prípady zahŕňajú kladné a záporné desatinné miesta so zaokrúhlením na jedno desatinné miesto.

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

Výkon:

2.0 -3.0 2.2 

Zaokrúhlenie na polovicu od nuly v Pythone

Pri zaokrúhľovaní na polovicu od nuly musíme začať ako zvyčajne posunutím desatinnej čiarky doprava o daný počet miest a potom si všimnúť číslicu (d) hneď napravo od desatinného miesta v novom čísle. Je potrebné zvážiť štyri prípady:

  • Ak je n kladné a d>= 5, zaokrúhlite nahor
  • Ak je n kladné a d = 5, zaokrúhlite nadol
  • Ak je n záporné a d>= 5, zaokrúhlite nadol
  • Ak je n záporné a d <5, zaokrúhlite nahor

Po zaokrúhlení podľa vyššie uvedených pravidiel môžeme posunúť desatinné miesto späť doľava.

  • Zaokrúhlenie na polovicu na párne: Existuje spôsob, ako zmierniť zaokrúhľovanie pri zaokrúhľovaní hodnôt v množine údajov. Úväzky môžeme jednoducho zaokrúhliť na najbližšie párne číslo s požadovanou presnosťou. Stratégia zaokrúhľovania z polovice na párne je stratégia, ktorú používa vstavaná funkcia round() Pythonu. The desatinná trieda poskytuje podporu pre rýchle správne zaokrúhlené desatinné čísla s pohyblivou rádovou čiarkou. To ponúka niekoľko výhod oproti dátovému typu float. Predvolená stratégia zaokrúhľovania v desiatkovom module je ROUND_HALF_EVEN.

Príklad: V tomto príklade kód uvedený nižšie používa funkciu „Decimal“ z knižnice „decimal“ na presné znázornenie desatinných čísel. Kontrast vytvára `Decimal` objekt z reťazca a priamo z čísla s pohyblivou rádovou čiarkou. Funkcia `quantize()` sa potom použije na zaokrúhľovanie s určenými desatinnými miestami, čím sa demonštruje presnosť desiatkovej aritmetiky.

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

Výkon:

0.1 0.1000000000000000055511151231257827021181583404541015625 1.6 1.68