Python: Усечение числа с плавающей точкой (6 различных способов)

В этом руководстве вы научитесь использовать Python для усечения числа с плавающей точкой, либо без десятичных знаков, либо с определенным количеством десятичных знаков. Вы узнаете, как это сделать с помощью встроенной функции int(), библиотеки math и строковых методов, включая Python f-строки. Вы также научитесь усекать список чисел с плавающей точкой.

Возможность усечения значений в Python имеет ряд важных преимуществ, таких как возможность вывода чисел в более презентабельном формате. Умение выводить значения в более удобочитаемом формате является важным навыком для того, чтобы сделать ваши данные более наглядными.

Оглавление

Использование функции int для усечения числа с плавающей точкой в Python

Встроенная функция int() принимает число с плавающей точкой и преобразует его в целое число, тем самым усекая значение с плавающей точкой, удаляя его десятичные знаки.

Функция int() работает иначе, чем функции round() и floor(). Функция просто удаляет все после десятичной точки, независимо от того, что за ней следует. Это отличается от функции round(), так как она не округляет. Также это отличается от floor(), которая возвращает целое число, большее текущего числа.

Давайте посмотрим, как использовать функцию int() для усечения числа с плавающей точкой в Python:

# Усечение числа с плавающей точкой в Python с помощью int()

float1 = 123.356
float2 = -2434.545

print(int(float1))
print(int(float2))

# Возвращает:
# 123
# -2434

Мы видим, что все после десятичной точки усекается.

Использование библиотеки Math для усечения числа с плавающей точкой в Python

Подобно функции int(), библиотека math имеет функцию, которая может помочь усечь число с плавающей точкой в Python - функцию trunc().

Хотя может показаться тривиальным использовать другую библиотеку для этого, это может сделать ваш код немного более понятным, объясняя, что делает функция и почему.

Поскольку наше намерение - усечь число с плавающей точкой, функция trunc() делает это предельно ясно, в то время как функция int() этого не делает.

Давайте посмотрим, как использовать функцию trunc() для усечения некоторых чисел в Python:

# Усечение числа с плавающей точкой в Python с помощью math.trunc()
import math

float1 = 123.356
float2 = -2434.545

print(math.trunc(float1))
print(math.trunc(float2))

# Возвращает:
# 123
# -2434

Мы видим, что возвращается тот же результат, что и при использовании функции int().

Использование строковых методов для усечения числа с плавающей точкой в Python

Мы также можем использовать строковые методы для усечения числа с плавающей точкой в Python. Это работает путем первоначального преобразования числа с плавающей точкой в строку, а затем манипуляции со строкой.

Используя метод str.split(), мы можем разделить строку по точке и оставить только первую часть разделения.

Давайте посмотрим, как усечь число с плавающей точкой в Python с помощью метода str.split():

# Усечение числа с плавающей точкой в Python с помощью str.split()
float1 = 123.356
float2 = -2434.545

print(str(float1).split('.')[0])
print(str(float2).split('.')[0])

# Возвращает:
# 123
# -2434

Давайте посмотрим, как это работает:

  1. Сначала преобразуем число с плавающей точкой в строку

  2. Затем разделяем строку с помощью символа .

  3. Наконец, возвращаем первый элемент (часть перед десятичной точкой)

Использование f-строк для усечения числа с плавающей точкой в Python

Могут быть случаи, когда вы хотите усечь число с плавающей точкой до определенного количества десятичных знаков. Это может быть полезно, например, при отображении валют или процентов.

Для этого мы можем легко использовать форматирование строк с помощью удобных функций f-строк в Python. С их помощью мы можем указать количество десятичных знаков для сохранения и преобразовать строку обратно в число с плавающей точкой.

# Усечение числа с плавающей точкой в Python с помощью f-строк
float1 = 123.356
float2 = -2434.545

# Сохранить два десятичных знака
print(float(f'{float1:.2f}'))
print(float(f'{float2:.2f}'))

# Возвращает:
# 123.36
# -2434.55

Мы видим, что сначала преобразуем число с плавающей точкой в строку, возвращая только определенное количество десятичных знаков. Затем преобразуем строку обратно в число с плавающей точкой, используя функцию float(). Важно отметить, что это округлит число, а не усечет его напрямую. Это может привести к потенциально нежелательным результатам.

Усечение списка чисел с плавающей точкой в Python с помощью цикла For

Могут быть случаи, когда вам дается список чисел с плавающей точкой, и вам нужно усечь все их. Один из способов сделать это - использовать цикл for в Python.

При этом мы можем перебирать каждый элемент списка, усекать его и добавлять в новый список.

Давайте посмотрим, как это выглядит в Python:

# Усечение списка чисел с плавающей точкой с помощью цикла for
floats = [1.234, 45.543, 132.87, 76.989]
truncated = list()

for float in floats:
    truncated.append(int(float))

print(truncated)

# Возвращает: [1, 45, 132, 76]

Что мы сделали:

  1. Создали новый пустой список для хранения усеченных значений

  2. Прошли циклом по каждому элементу списка чисел с плавающей точкой и усекли его с помощью функции int()

  3. Добавили усеченный элемент в наш список

Усечение списка чисел с плавающей точкой в Python с помощью списочного включения

В предыдущем разделе показано, как использовать цикл for Python для усечения списка чисел с плавающей точкой. Мы также можем использовать списочное включение Python, чтобы сделать это, сократив визуальный беспорядок и избавившись от необходимости предварительно создавать пустой список.

Давайте посмотрим, как использовать списочное включение для достижения этой цели:

# Усечение списка чисел с плавающей точкой с помощью списочного включения
floats = [1.234, 45.543, 132.87, 76.989]
truncated = [int(item) for item in floats]

print(truncated)

# Возвращает: [1, 45, 132, 76]

Заключение

В этом руководстве вы научились усекать число с плавающей точкой в Python. Вы узнали, как это сделать с помощью функции int(), библиотеки math и строковых методов. Вы также научились использовать циклы for и списочные включения для усечения списков чисел с плавающей точкой в Python.

Чтобы узнать больше о функции math.trunc(), ознакомьтесь с официальной документацией.

Last updated