Najbliższa funkcja liczb całkowitych w Pythonie

click fraud protection

Być może potwierdzając reputację potężnego i elastycznego języka programowania, Python zawiera wiele wewnętrznych bibliotek do automatyzacji typowych lub złożonych zadań obliczeniowych i matematycznych. „Biblioteka matematyczna” zawiera wiele metod wykonywania typowych obliczeń lub operacji, takich jak zaokrąglanie. Jednak zaokrąglanie liczb dziesiętnych w Pythonie nie jest zaokrąglane do liczby całkowitej, ale do całego dziesiętnego. Konwersja na liczby całkowite wymaga użycia biblioteki matematycznej Pythona wraz z użyciem niektórych wbudowanych bibliotek konwersji.

Python i zaokrąglanie

Biblioteka matematyczna Pythona oferuje pakiet metod przydatnych do zaokrąglania liczb dziesiętnych do liczb całkowitych. Liczbę można zaokrąglić w tradycyjny sposób (w dół do najbliższej liczby całkowitej dla części ułamkowych o wartości .4 lub mniejszej oraz w górę dla części .5 i większych) przy użyciu metody „round()”. Poniższy przykład pokazuje, jak zaokrąglać liczby dziesiętne za pomocą metody round:

Wideo dnia

f = 5,455 >>>okrągła (f) 5,0 >>>okrągła (f, 2) //zaokrągla do 2 miejsc po przecinku 5,46

Metody sufitowe i podłogowe

Jako część biblioteki matematycznej metody „floor()” i „ceil()” zapewniają unikalny sposób zaokrąglania liczb dziesiętnych, który może być przydatny w niektórych obliczeniach. Metoda podłogi zaokrągla w dół do najbliższej najbliższej liczby całkowitej w kierunku ujemnej nieskończoności (niezależnie od wartość dziesiętna), a metoda sufitu zostanie zaokrąglona w górę do najbliższej liczby całkowitej w kierunku dodatnim nieskończoność. Poniższy przykład pokazuje, jak działają te dwie funkcje:

importuj matematykę >>>f = 3.5 >>>g = -3.5 >>>podłoga (f) 3.0 >>>ceil (3.5) 4.0 >>>podłoga (g) -4.0 >>>ceil (g) -3.0

Zaokrąglanie i liczby całkowite

Przedstawione operacje zaokrąglania pokazują, jak działają te funkcje, ale mają również efekt uboczny: w wersjach Pythona starszych niż 3.0, zaokrąglane liczby dziesiętne nie są zaokrąglane do liczb całkowitych, ale do miejsc dziesiętnych. Ze względu na sposób, w jaki ułamki dziesiętne są reprezentowane przez architektury komputerowe, może to powodować problemy w obliczeniach o wysokiej precyzji, w których programiści mogą wymagać liczb całkowitych. Możesz przekonwertować liczbę zmiennoprzecinkową na liczbę całkowitą za pomocą metody „int()”, jak w tym przykładzie:

f = 3,5 >>>okrągła (f) 4,0 >>>int (okrągła (f)) 4

Przykładowa metoda

Korzystając z tej wiedzy, możesz opracować metodę łatwego zaokrąglania ułamków dziesiętnych do liczb całkowitych. Poniższe przykłady przedstawiają krótkie przykłady metod określających dolny i górny pułap liczby jako liczby całkowitej oraz innej, która zaokrągla się do miejsca dziesiętnego wskazanego przez użytkownika (lub liczby całkowitej):

importuj matematykę >>>def integerFloor (x):... return int (podłoga (x)) >>>def integerCeiling (x):... return int (ceil (x)) >>>def zaokrąglenie (x, dec):... jeśli dec == 0:... powrót int (okrągły (x))... w przeciwnym razie:... powrót (runda (x, dec))