Jak zaokrouhlovat čísla v Pythonu?

Jak zaokrouhlovat čísla v Pythonu?

V tomto článku probereme Jak zaokrouhlovat čísla v Pythonu s vhodnými metodami a příklady Jak zaokrouhlit nahoru Krajta .

Příklad:

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

Zaokrouhlit čísla v Pythonu

Zaokrouhlení čísla znamená zjednodušení čísla tím, že jeho hodnota zůstane nedotčená, ale blíže k dalšímu číslu. Existují různé metody zaokrouhlování čísel v Pythonu, zde diskutujeme o některých obecně používaných Jak zaokrouhlit nahoru v Pythonu , Níže jsou uvedeny následující body, které budou popsány v tomto článku pomocí Pythonu:

  • Použití vestavěné funkce round().
  • Použitím Zkrácení pojem
  • Použitím Math.ceil() a Math.floor() funkcí
  • Použitím math.ceil
  • Použitím matematika.podlaha
  • Za použití numpy> Modul
  • Za použití Zaokrouhlování Koncept zkreslení
  • Zaokrouhlení na polovinu od nuly v Pythonu

Zaokrouhlená čísla v Pythonu u zpívat Vestavěný kolo() Funkce

V Pythonu je vestavěný funkce round(). která zaokrouhlí číslo na daný počet číslic. Funkce round() přijímá dva číselné argumenty, n a n číslic, a poté vrátí číslo n po zaokrouhlení na n číslic. Pokud není uveden počet číslic pro zaokrouhlení, funkce zaokrouhlí dané číslo n na nejbližší celé číslo.

Příklad: V tomto příkladu níže uvedený kód ukazuje funkci `round()` pro celá čísla a čísla s plovoucí desetinnou čárkou. Ilustruje také zaokrouhlování na dvě desetinná místa a ukazuje případy, kdy je další číslice 5, větší než 5 a menší než 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ýstup:

11 23 4.46 4.48 4.47 

Zaokrouhlená čísla v Pythonu u zpívat Zkrácení pojem

V této funkci je každá číslice po dané pozici nahrazena 0. python zkrátit() funkce lze použít s kladnými i zápornými čísly. Funkci zkrácení lze implementovat následujícím způsobem:

  • Vynásobením čísla 10^p (10 zvýšeno na p čt moc) k posunutí desetinné čárky o p míst doprava.
  • Převzetí celé části tohoto nového čísla pomocí int().
  • Posunutím desetinného místa p míst zpět doleva vydělení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ýstup:

16.0 -3.8 3.81 340.0 -2000.0 

Zaokrouhlená čísla v Pythonu u zpívat Math.ceil() a Math.floor() funkcí

Matematika . ceil() : Tato funkce vrací nejbližší celé číslo, které je větší nebo rovno danému číslu.
Math.floor() : Tato funkce vrací nejbližší celé číslo menší nebo rovné danému číslu.

Příklad :V tomto příkladu níže uvedený kód využívá knihovnu `math` k výpočtu maximálních hodnot pro kladná a záporná desetinná místa s `math.ceil` a spodní hodnoty s `math.floor`. Výstupy jsou 5, 0, 2 a -1 pro příslušné pří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ýstup:

5 0 2 -1 

Zaokrouhlená čísla v Pythonu u zpívat math.ceil

Zaokrouhlení čísla nahoru zahrnuje posunutí desetinné čárky doprava, zaokrouhlení nahoru a následné posunutí zpět doleva pro přesnost pomocí ` math.ceil() ` a operace násobení/dělení.

Příklad :V tomto příkladu níže uvedený kód definuje funkci `round_up` pomocí knihovny `math`, která zaokrouhluje číslo na zadané desetinné místo. Využívá násobení, zaokrouhlování pomocí `math.ceil()` a dělení pro přesnost. Kladné a záporné hodnoty se testují na zaokrouhlení.

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ýstup:

3.0 2.3 2.55 30.0 2400.0 

Můžeme se řídit níže uvedeným diagramem, abychom pochopili zaokrouhlení nahoru a dolů. Zaokrouhlete nahoru doprava a dolů doleva.

Porozumění zaokrouhlování nahoru a dolů

Zaokrouhlením nahoru se vždy zaokrouhlí číslo na číselné ose doprava a zaokrouhlením dolů se vždy zaokrouhlí číslo na číselné ose doleva.

Zaokrouhlená čísla v Pythonu u zpívat matematika.podlaha

V zaokrouhlení dolů je číslo zaokrouhleno dolů na určený počet číslic. Funkci zaokrouhlení dolů lze implementovat následujícím způsobem:

  • Nejprve se desetinná čárka v n posune na správný počet míst doprava vynásobením n 10 ** desetinnými místy.
  • Nová hodnota se zaokrouhlí nahoru na nejbližší celé číslo pomocí math.floor() .
  • Nakonec se desetinná čárka posune zpět doleva dělením na 10 ** desetinných míst.

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ýstup:

2.0 2.4 -1.0 

Zaokrouhlená čísla v Pythonu u zpívat Numpy Module

Modul NumPy v Pythonu poskytuje numpy.round()> funkce zaokrouhlovat čísla. Tato funkce zaokrouhlí každý prvek pole na nejbližší celé číslo nebo na zadaný počet desetinných míst.

Příklad: V tomto příkladu níže uvedený kód používá modul NumPy k vytvoření pole `arr` a zaokrouhluje každý prvek na nejbližší celé číslo (`rounded_integers`) a na dvě desetinná místa (`rounded_decimals`). Výsledky jsou poté vytištěny pro zobrazení.

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ýstup :

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

Zaokrouhlená čísla v Pythonu u zpívat Zkreslení zaokrouhlení pojem.

Koncept symetrie zavádí pojem zkreslení zaokrouhlování, který popisuje, jak zaokrouhlování ovlivňuje číselná data v datové sadě.
Strategie zaokrouhlování má zaokrouhlení směrem ke kladnému nekonečnu, protože hodnota je vždy zaokrouhlena nahoru ve směru kladného nekonečna. Podobně strategie zaokrouhlování dolů má zaokrouhlení směrem k zápornému nekonečnu. Strategie zkrácení má zaokrouhlení směrem k zápornému nekonečnu u kladných hodnot a zaokrouhlování směrem k kladnému nekonečnu pro záporné hodnoty. Zaokrouhlovací funkce s tímto chováním mají obecně zaokrouhlení směrem k nule.

a) Zaokrouhlení na polovinu nahoru koncept v Pythonu

Poloviční zaokrouhlení zaokrouhlí každé číslo na nejbližší číslo se zadanou přesností a přeruší remízu zaokrouhlením nahoru.
Strategie zaokrouhlení na polovinu se provádí posunutím desetinné čárky doprava o požadovaný počet míst. V tomto případě budeme muset určit, zda je číslice za posunutou desetinnou čárkou menší nebo větší než 5.
K hodnotě, která je posunuta, můžeme přidat 0,5 a pak ji zaokrouhlit dolů pomocí funkce math.floor().

Implementace funkce round_half_up():

Příklad: V tomto příkladu níže uvedený kód definuje `round_half_up`, vlastní funkci zaokrouhlení používající metodu round half up s `math.floor()` pro přesnost. Ukázky zahrnují kladná a záporná čísla s různými desetinnými místy.

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ýstup:

1.3 -1.0 -1.23 

b) Zaokrouhlení napůl dolů koncept v Pythonu

Tím se zaokrouhlí na nejbližší číslo podobně jako metoda zaokrouhlování na polovinu, rozdíl je v tom, že se přeruší remíza zaokrouhlením na menší z těchto dvou čísel. Strategie zaokrouhlení o polovinu dolů je implementována nahrazením math.floor() ve funkci round_half_up() math.ceil() a poté odečtením 0,5 namísto přidávání.

Implementace funkce round_half_down():

V tomto příkladu níže uvedený kód definuje `round_half_down` pomocí knihovny `math` k dosažení chování zaokrouhlení na polovinu. Využívá násobení, odčítání a `math.ceil()` pro zaokrouhlování směrem k nule. Testovací případy zahrnují kladná a záporná desetinná místa zaokrouhlená na jedno desetinné místo.

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ýstup:

2.0 -3.0 2.2 

Zaokrouhlení na polovinu od nuly v Pythonu

V zaokrouhlení na polovinu od nuly musíme začít jako obvykle posunutím desetinné čárky doprava o daný počet míst a pak si všimnout číslice (d) hned vpravo od desetinného místa v novém čísle. Je třeba zvážit čtyři případy:

  • Je-li n kladné a d>= 5, zaokrouhlete nahoru
  • Je-li n kladné a d = 5, zaokrouhlete dolů
  • Pokud je n záporné a d>= 5, zaokrouhlete dolů
  • Je-li n záporné a d <5, zaokrouhlete nahoru

Po zaokrouhlení podle výše uvedených pravidel můžeme posunout desetinné místo zpět doleva.

  • Zaokrouhlení na polovinu na sudé: Existuje způsob, jak zmírnit zkreslení zaokrouhlování, když zaokrouhlujeme hodnoty v datové sadě. Můžeme jednoduše zaokrouhlit vazby na nejbližší sudé číslo s požadovanou přesností. Strategie zaokrouhlování z poloviny na sudé je strategie používaná vestavěným round() Pythonu. The desetinná třída poskytuje podporu pro rychlou správně zaokrouhlenou desetinnou aritmetiku s plovoucí desetinnou čárkou. To nabízí několik výhod oproti datovému typu float. Výchozí strategie zaokrouhlování v desítkovém modulu je ROUND_HALF_EVEN.

Příklad: V tomto příkladu níže uvedený kód používá funkci `Decimal` z knihovny `decimal` k přesné reprezentaci desetinných čísel. Kontrastuje vytváření `Desetinného` objektu z řetězce a přímo z čísla s plovoucí desetinnou čárkou. Funkce `quantize()` se pak použije pro zaokrouhlování s určenými desetinnými místy, což demonstruje přesnost v desítkové aritmetice.

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ýstup:

0.1 0.1000000000000000055511151231257827021181583404541015625 1.6 1.68