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