logo

Jak zaokrąglić liczby w Pythonie?

W tym artykule omówimy sposób zaokrąglania liczb w Pythonie za pomocą odpowiednich metod i przykładów Jak zaokrąglić Pyton .

Przykład:



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

Zaokrąglaj liczby w Pythonie

Zaokrąglanie liczby oznacza uproszczenie liczby poprzez zachowanie jej wartości w stanie nienaruszonym, ale bliżej następnej liczby. Istnieją różne metody zaokrąglania liczb w Pythonie, tutaj omawiamy niektóre powszechnie stosowane Jak zaokrąglić w Pythonie Poniżej znajdują się następujące punkty, które zostaną omówione w tym artykule przy użyciu języka Python:

  • Korzystanie z wbudowanej funkcji round().
  • Za pomocą Obcięcie pojęcie
  • Za pomocą Matematyka.ceil() I Podłoga matematyczna() Funkcje
  • Za pomocą matematyka.ceil
  • Za pomocą matematyka.podłoga
  • Używając numpy> Moduł
  • Używając Zaokrąglanie Koncepcja stronniczości
  • Zaokrąglanie do połowy od zera w Pythonie

Okrągłe liczby w Pythonie u śpiewać Wbudowany okrągły() Funkcjonować

W Pythonie jest to wbudowane funkcja round(). która zaokrągla liczbę do podanej liczby cyfr. Funkcja round() przyjmuje dwa argumenty numeryczne, n i n cyfr, a następnie zwraca liczbę n po zaokrągleniu jej do n cyfr. Jeżeli liczba cyfr nie jest przewidziana do zaokrąglenia, funkcja zaokrągla podaną liczbę n do najbliższej liczby całkowitej.

harmonogram okrężny

Przykład : W tym przykładzie poniższy kod ilustruje funkcję „round()” dla liczb całkowitych i zmiennoprzecinkowych. Ilustruje również zaokrąglanie do dwóch miejsc po przecinku, pokazując przypadki, w których następna cyfra to 5, większa niż 5 i mniejsza niż 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>))>

>

>

Wyjście:

11 23 4.46 4.48 4.47>

Okrągłe liczby w Pythonie u śpiewać Obcięcie pojęcie

W tej funkcji każda cyfra po danej pozycji jest zastępowana przez 0. python ścięty() funkcjonować można używać z liczbami dodatnimi i ujemnymi. Funkcję obcinania można zaimplementować w następujący sposób:

  • Mnożąc liczbę przez 10^p (10 podniesione do ptpotęga), aby przesunąć przecinek dziesiętny p miejsc w prawo.
  • Biorąc część całkowitą tej nowej liczby za pomocą int().
  • Przesunięcie miejsca dziesiętnego p umieszcza się z powrotem w lewo, dzieląc przez 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>))>

>

>

Wyjście:

16.0 -3.8 3.81 340.0 -2000.0>

Okrągłe liczby w Pythonie u śpiewać Matematyka.ceil() I Podłoga matematyczna() Funkcje

Matematyka . stropować() : Ta funkcja zwraca najbliższą liczbę całkowitą większą lub równą podanej liczbie.
Podłoga matematyczna() : Ta funkcja zwraca najbliższą liczbę całkowitą mniejszą lub równą podanej liczbie.

Przykład :W tym przykładzie poniższy kod wykorzystuje bibliotekę `math` do obliczenia wartości górnych dla dodatnich i ujemnych miejsc dziesiętnych za pomocą `math.ceil` i wartości minimalnych za pomocą `math.floor`. Dane wyjściowe to 5, 0, 2 i -1 dla odpowiednich przypadków.

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

>

>

Wyjście:

5 0 2 -1>

Okrągłe liczby w Pythonie u śpiewaj math.ceil

Zaokrąglanie liczby polega na przesunięciu przecinka w prawo, zaokrągleniu w górę, a następnie przesunięciu go z powrotem w lewo w celu uzyskania precyzji za pomocą ` matematyka.ceil() ` i operacje mnożenia/dzielenie.

Przykład :W tym przykładzie poniższy kod definiuje funkcję `round_up` przy użyciu biblioteki `math`, która zaokrągla liczbę do określonego miejsca dziesiętnego. Wykorzystuje mnożenie, zaokrąglanie za pomocą funkcji „math.ceil()” i dzielenie w celu zapewnienia precyzji. Wartości dodatnie i ujemne są testowane pod kątem zaokrąglania.

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

>

>

Wyjście:

3.0 2.3 2.55 30.0 2400.0>

Możemy postępować zgodnie z poniższym diagramem, aby zrozumieć zaokrąglanie w górę i w dół. Zaokrąglaj w górę w prawo i w dół w lewo.

Zrozumienie zaokrąglania w górę i zaokrąglania w dół

Zaokrąglanie w górę zawsze zaokrągla liczbę w prawo na osi liczbowej, a zaokrąglanie w dół zawsze zaokrągla liczbę w lewo na osi liczbowej.

Okrągłe liczby w Pythonie u śpiewać matematyka.podłoga

W trybie Zaokrąglanie w dół liczba jest zaokrąglana w dół do określonej liczby cyfr. Funkcję zaokrąglania w dół można zaimplementować w następujący sposób:

  • Najpierw przecinek dziesiętny w n przesuwa się o odpowiednią liczbę miejsc w prawo, mnożąc n przez 10** miejsc po przecinku.
  • Nowa wartość jest zaokrąglana w górę do najbliższej liczby całkowitej przy użyciu matematyka.podłoga() .
  • Na koniec przecinek dziesiętny przesuwa się z powrotem w lewo, dzieląc przez 10 ** miejsc po przecinku.

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

>

>

Wyjście:

2.0 2.4 -1.0>

Okrągłe liczby w Pythonie u śpiewaj moduł Numpy

Moduł NumPy w Pythonie zapewnia numpy.round()>funkcjonować zaokrąglać liczby. Ta funkcja zaokrągla każdy element tablicy do najbliższej liczby całkowitej lub określonej liczby miejsc po przecinku.

Przykład : W tym przykładzie poniższy kod wykorzystuje moduł NumPy do utworzenia tablicy „arr” i zaokrągla każdy element do najbliższej liczby całkowitej („zaokrąglone_integers”) i do dwóch miejsc po przecinku („zaokrąglone_dziesiętne”). Wyniki są następnie drukowane w celu wyświetlenia.

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

>

>

Wyjście :

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

Okrągłe liczby w Pythonie u śpiewać Zaokrąglanie pojęcie.

Koncepcja symetrii wprowadza pojęcie błędu zaokrąglania, które opisuje, jak zaokrąglenie wpływa na dane liczbowe w zbiorze danych.
Strategia zaokrąglania w górę ma tendencję do zaokrąglania w kierunku dodatniej nieskończoności, ponieważ wartość jest zawsze zaokrąglana w górę w kierunku dodatniej nieskończoności. Podobnie strategia zaokrąglania w dół ma tendencję do zaokrąglania w kierunku ujemnej nieskończoności. Strategia obcinania obejmuje odchylenie w kierunku ujemnej nieskończoności w przypadku wartości dodatnich i zaokrąglenie w kierunku dodatniej nieskończoności w przypadku wartości ujemnych. Ogólnie mówi się, że funkcje zaokrąglające charakteryzujące się tym zachowaniem mają zaokrąglenie w stronę zera.

a) Zaokrąglanie w górę koncepcja w Pythonie

Zaokrąglanie w górę zaokrągla każdą liczbę do najbliższej liczby z określoną precyzją i przerywa remisy poprzez zaokrąglenie w górę.
Strategia zaokrąglania o połowę w górę realizowana jest poprzez przesunięcie przecinka w prawo o żądaną liczbę miejsc. W tym przypadku będziemy musieli ustalić, czy cyfra po przesuniętym przecinku jest mniejsza czy większa od równej 5.
Do przesuniętej wartości możemy dodać 0,5, a następnie zaokrąglić ją w dół za pomocą funkcji math.floor().

Implementacja funkcji round_half_up():

Przykład: W tym przykładzie poniższy kod definiuje `round_half_up`, niestandardową funkcję zaokrąglania wykorzystującą metodę zaokrąglania o połowę w górę z `math.floor()` dla zapewnienia precyzji. Prezentacje obejmują liczby dodatnie i ujemne z różnymi miejscami po przecinku.

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

>

>

Wyjście:

1.3 -1.0 -1.23>

b) Zaokrąglanie w dół koncepcja w Pythonie

Zaokrągla to do najbliższej liczby, podobnie jak metoda zaokrąglania o połowę w górę, z tą różnicą, że remisuje poprzez zaokrąglenie do mniejszej z dwóch liczb. Strategię zaokrąglania o połowę w dół implementuje się poprzez zastąpienie funkcji math.floor() w funkcji round_half_up() funkcją math.ceil(), a następnie odejmowanie 0,5 zamiast dodawania.

Implementacja funkcji round_half_down():

W tym przykładzie poniższy kod definiuje `round_half_down` przy użyciu biblioteki `math` w celu uzyskania zachowania zaokrąglenia do połowy w dół. Wykorzystuje mnożenie, odejmowanie i funkcję „math.ceil()” do zaokrąglania do zera. Przypadki testowe obejmują dodatnie i ujemne miejsca po przecinku, zaokrąglone do jednego miejsca po przecinku.

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

>

>

Wyjście:

2.0 -3.0 2.2>

Zaokrąglanie do połowy od zera w Pythonie

Zaokrąglanie o połowę od zera musimy zacząć jak zwykle od przesunięcia przecinka w prawo o określoną liczbę miejsc, a następnie zwrócić uwagę na cyfrę (d) znajdującą się bezpośrednio na prawo od miejsca dziesiętnego w nowej liczbie. Należy rozważyć cztery przypadki:

  • Jeśli n jest dodatnie i d>= 5, zaokrąglij w górę
  • Jeśli n jest dodatnie i d = 5, zaokrąglij w dół
  • Jeśli n jest ujemne, a d>= 5, zaokrąglij w dół
  • Jeśli n jest ujemne, a d <5, zaokrąglij w górę

Po zaokrągleniu zgodnie z powyższymi zasadami możemy przesunąć przecinek z powrotem w lewo.

  • Zaokrąglanie od połowy do parzystej: Istnieje sposób na złagodzenie błędu zaokrąglania podczas zaokrąglania wartości w zbiorze danych. Możemy po prostu zaokrąglić remisy do najbliższej liczby parzystej z żądaną precyzją. Strategia zaokrąglania od połowy do parzystej to strategia używana przez wbudowaną w Pythonie funkcję round(). The klasa dziesiętna zapewnia obsługę szybkiej, poprawnie zaokrąglonej dziesiętnej arytmetyki zmiennoprzecinkowej. Daje to kilka korzyści w porównaniu z typem danych float. Domyślna strategia zaokrąglania w module dziesiętnym to ROUND_HALF_EVEN.

Przykład: W tym przykładzie poniższy kod wykorzystuje funkcję „Decimal” z biblioteki „decimal” do dokładnego przedstawienia liczb dziesiętnych. Kontrastuje to z tworzeniem obiektu „Decimal” z łańcucha i bezpośrednio z liczby zmiennoprzecinkowej. Następnie do zaokrąglania do określonych miejsc dziesiętnych wykorzystywana jest funkcja „quantize()”, co pozwala wykazać precyzję w arytmetyce dziesiętnej.

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

>

>

Wyjście:

0.1 0.1000000000000000055511151231257827021181583404541015625 1.6 1.68>