Округление чисел в Python пятью способами
Округлять числа — значит упрощать их, удаляя лишние десятичные части. Это важно, потому что упрощает математику и помогает нам лучше понимать и работать с числами. В этой статье мы обсудим, как можно округлять числа с помощью простых функций в NumPy в Python. Итак, давайте начнем.
1. Функция round()
Функция round()
изменяет число или группу чисел до ближайшего целого числа или определенного количества знаков после запятой.
Основной синтаксис выглядит следующим образом:
np.round(array, decimals)
Здесь:
array
: Это входной массив или число, которое вы хотите округлить.
decimals
: Позволяет выбрать, до скольких цифр после запятой нужно округлять. Если вы не укажете, то округление будет произведено до ближайшего целого числа.
Как округляется:
Если десятичная часть числа меньше 0,5, оно округляется в меньшую сторону. Если десятичная часть 0,5 или больше, то округляется в большую сторону.
Давайте используем это в коде:
import numpy as np
a_input = input("Enter the decimal numbers with separating spaces: ")
arr = np.array([float(x) for x in a_input.split()])
d_places = int(input("Enter the number of decimal places to round to: "))
rounded_arr = np.round(arr, d_places)
print("Original array:", arr)
print("Rounded array:", rounded_arr)
Работа:
- Программа просит пользователя ввести десятичные числа, разделенные пробелами.
- Программа принимает введенные данные, разбивает их на пробелы, преобразует каждую часть в число с плавающей точкой и создает массив из этих чисел.
- Затем она спрашивает пользователя, до скольких знаков после запятой нужно округлить число.
- Она округляет каждое число в массиве до указанного количества знаков после запятой.
- И наконец, печатает исходный массив и округленный массив.
Выходные данные:
2. Функция floor()
floor()
- это еще одна функция библиотеки NumPy, которая помогает округлять числа до ближайшего целого числа или целой цифры.
Синтаксис функции выглядит следующим образом:
np.floor(array)
Здесь:
array
- это входные данные.
Работа:
Всегда отбрасывается десятичная часть и округляется до меньшего целого числа. В случае положительных чисел он отсекает десятичную часть и превращает их в меньшее целое число. Для отрицательных чисел он движется к нулю и становится ближайшим меньшим целым числом.
Давайте разберемся с кодом:
import numpy as np
a_input = input("Enter the decimal numbers with separating spaces: ")
arr = np.array([float(x) for x in a_input.split()])
rounded_arr = np.floor(arr)
print("Original array:", arr)
print("Rounded array:", rounded_arr)
Этот код делает следующее:
- Запрашивает десятичные числа, разделенные пробелами.
- Преобразует их в числа с плавающей точкой и создает массив.
- Округляет каждое число до ближайшего целого числа.
- Выводит исходный массив и округленный массив.
Выходные данные:
3. Функция ceil()
Функция ceil()
принимает на вход число или массив чисел и округляет их до ближайшего целого числа, которое больше или равно исходному числу.
Её синтаксис выглядит следующим образом:
np.ceil(array)
Здесь:
array
- входные данные.
Принцип работы:
Всегда выполняется переход к следующему большему целому числу, игнорируя десятичную часть. Для положительных чисел он округляет в большую сторону. Для отрицательных чисел он переходит к следующему целому числу, ближайшему к нулю.
Давайте реализуем это с помощью кода:
import numpy as np
a_input = input("Enter the decimal numbers with separating spaces: ")
arr = np.array([float(x) for x in a_input.split()])
rounded_arr = np.ceil(arr)
print("Original array:", arr)
print("Rounded array:", rounded_arr)
Работа этого кода аналогична двум предыдущим, за исключением того, что он округляет каждое число до ближайшего целого числа.
Выходные данные:
Функции ceil()
и floor()
могут быть довольно запутанными, верно? Не волнуйтесь, у нас есть трюк, который поможет вам разобраться!
4. Функция trunc()
Функция trunc()
берет число или группу чисел и отсекает десятичную часть, оставляя только целую часть.
Основной синтаксис выглядит следующим образом, в качестве входных данных используется массив:
np.trunc(array)
Как это работает:
Просто обрезается десятичная часть числа без округления. Всегда стремится к нулю. Для положительных чисел сохраняет целую часть. Для отрицательных чисел сохраняется целая часть и знак минус.
Давайте используем это в коде:
import numpy as np
a_input = input("Enter the decimal numbers with separating spaces: ")
arr = np.array([float(x) for x in a_input.split()])
rounded_arr = np.trunc(arr)
print("Original array:", arr)
print("Rounded array:", rounded_arr)
Этот код принимает на вход десятичные числа, превращает их в массив, а затем удаляет десятичную часть, чтобы оставить только целую часть, используя trunc()
.
Выходные данные:
5. Функция around()
Функция around()
округляет вводимые данные до заданного количества десятичных знаков. Она похожа на round()
в Python, но дает больше контроля над точностью округления.
Синтаксис для нее следующий:
np.around(array, decimals)
Здесь:
array
- входные данные.
decimals
- заданный предел, до которого их нужно округлить.
Как это работает:
Она округляет вводимое число до ближайшего значения с указанным количеством десятичных знаков. Если десятичная часть находится ровно на полпути между двумя округленными значениями, around()
округляет до ближайшего чётного значения для более сбалансированного подхода к округлению.
Давайте реализуем это в коде:
import numpy as np
a_input = input("Enter the decimal numbers with separating spaces: ")
arr = np.array([float(x) for x in a_input.split()])
rounded_arr = np.around(arr, 0)
print("Original array:", arr)
print("Rounded array:", rounded_arr)
Этот код принимает на вход десятичные числа, формирует их в массив и округляет каждое число до ближайшего целого числа с помощью функции around()
.
Выходные данные:
Заключение
Упрощение чисел помогает в математике. В этой статье мы рассмотрели, как округлять числа в Python с помощью NumPy. Функция round()
округляет до ближайшего целого или заданного десятичного знака, floor()
округляет вниз, ceil()
округляет вверх, trunc()
отсекает десятичные знаки, а around()
обеспечивает точное округление. Надеюсь, это поможет вам разобраться с округлением чисел!