Как преобразовать строку в число с плавающей точкой

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

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

Использование функции float()

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

Давайте рассмотрим пример преобразования объекта типа string в объект типа в float в Python:

input_1 = '10.5674'

input_1 = float(input_1)

print(type(input_1))
print('Float Value =', input_1)


# Вывод:
# <class 'float'>
# Float Value = 10.5674

Строковое значение ‘10.5674’ было преобразовано в значение 10.5674 типа float.

Зачем может понадобиться преобразовать строку в число с плавающей точкой?

Если мы получаем значения float из пользовательского ввода через терминал или читаем их из файла, то они являются строковыми объектами. Чтобы можно было выполнять над ними необходимые операции, такие как сложение, умножение и т.д., нужно явно преобразовать их в float.

input_1 = input('Please enter first floating point value:\n')
input_1 = float(input_1)

input_2 = input('Please enter second floating point value:\n')
input_2 = float(input_2)

print(f'Sum of {input_1} and {input_2} is {input_1+input_2}')

Давайте запустим этот код и введем числа с плавающей точкой для input_1 и input_2:

Please enter first floating point value:
10.234
Please enter second floating point value:
2.456
Sum of 10.234 and 2.456 is 12.69

Сумма 10.234 и 2.456 равна 12.69.

В идеале нужно использовать блок try-except для отлова исключений в случае некорректного ввода от пользователя.

Примечание редакции: об использовании try-except можно почитать в статье “Чем полезна обработка ошибок при помощи try-except”.

Использование функции str()

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

Давайте рассмотрим пример:

input_1 = 10.23
input_2 = 20.34
input_3 = 30.45

# f-строки используются в Python 3.6+, для более старых версий используйте format()
print(f'Concatenation of {input_1} and {input_2} is {str(input_1) + str(input_2)}')
print(f'CSV from {input_1}, {input_2} and {input_3}:\n{str(input_1)},{str(input_2)},{str(input_3)}')
print(f'CSV from {input_1}, {input_2} and {input_3}:\n{", ".join([str(input_1),str(input_2),str(input_3)])}')

Давайте запустим этот код:

Concatenation of 10.23 and 20.34 is 10.2320.34
CSV from 10.23, 20.34 and 30.45:
10.23,20.34,30.45
CSV from 10.23, 20.34 and 30.45:
10.23, 20.34, 30.45

Конкатенация 10.23 и 20.34 дает строку ‘10.2320.34’. Этот код также создает две версии значений, разделенных запятыми (CSV).

Если в приведенной выше программе мы не преобразуем число с плавающей точкой в строку, функция join() выбросит исключение. Кроме того, мы не сможем использовать оператор + для конкатенации, так как он будет складывать числа, а не склеивать их.

Заключение

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

Перевод статьи Pankaj “How To Convert a String to a Float in Python”.

1 комментарий к “Как преобразовать строку в число с плавающей точкой”

  1. Пингбэк: Функция float() в Python - pythonturbo

Комментарии закрыты.