Jak zaokrąglić liczby w Pythonie?

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.

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 p t potę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