Share This
Связаться со мной
Крути в низ
Categories
//Как преобразовать строку в число с плавающей запятой в Python

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

22.11.2021Category : Python

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

Зачем вообще може понадобиться такое преобразование? В Python, когда входные данные получаются в результате чтения или записи файла или выполнения какой-либо другой операции с файлом, ввод мы получаем в виде строковой переменной. Даже если мы запрашивали число с плавающей запятой, метод input() получает входные данные в виде строки. Поэтому для дальнейшей работы с нужными нам числами придется сначала привести string к float.

Использование метода float()

Чтобы преобразовать строку в число с плавающей запятой, в Python используется функция float(). Эта функция принимает только один параметр — строку или целое число. Если аргументы не переданы, метод возвращает 0.0.

Если входная строка имеет аргументы за пределами диапазона чисел с плавающей запятой, вы получите ошибку OverflowError.

Для реализации следующих скриптов на Python установите сам Python, а также подходящую IDE (Pycharm, Jupiter, Spyder и т.д.). Создайте новый файл, вставьте туда код и запустите его.

string = '3.4567' number = float(string) print('Float Value is', number)  # Output: # Float Value is 3.4567

В данном примере мы берем строку «3.4576». Мы конвертируем ее, передавая в функцию float(). Дальше строка преобразуется в число с плавающей запятой и возвращается нам.

kak preobrazovat stroku v chislo s plavajushhej zapjatoj v python 4a2f2c9 - Как преобразовать строку в число с плавающей запятой в Python

Марк Лутц «Изучаем Python»

Скачивайте книгу у нас в телеграм

Скачать ×

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

В следующем примере мы работаем со строкой «3,2.759». В данной строке есть число, разделенное запятой и точкой.

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

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

Запятую мы удалим из строки с помощью функции replace(), заменив ее на пустую строку.

string = '3,2.759' number = float(string.replace(',', '')) print('Float Value is', number)  # Output: # Float Value is 32.759

После удаления запятой из строки значение нашей строки будет «32.759». Далее мы можем применить метод float(), чтобы получить число вещественного типа.

Преобразование списка строк

Допустим, у нас есть список, содержащий числа в строковом формате. Чтобы преобразовать все эти элементы в числа с плавающей запятой, мы перебираем список в цикле for. Каждый элемент мы преобразуем из строкового в вещественный. Делается это при помощи функции float().

str = ['12.23', '45.78', '69.34', '38.65'] number = [] for item in str:     number.append(float(item)) print(number)  # Output: # [12.23, 45.78, 69.34, 38.65]

В данном примере у нас есть список [‘12.23’, ‘45.78’, ‘69.34’, ‘38.65’]. Мы создаем пустой список number, куда добавим наши числа в формате float. Далее мы используем цикл for для добавления каждого элемента из исходного списка в список number. При этом перед добавлением мы передаем в функцию float() каждый элемент, чтобы преобразовать его из строки в число с плавающей запятой.

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

Задание определенной точности

Иногда нам нужно указать количество знаков после запятой в числе. В такой ситуации мы используем все ту же функцию float(), а после нее — функцию format(), чтобы определить количество десятичных знаков в нашем числе.

В данном примере мы работаем со строкой «6.759104». Нам нужно преобразовать эту строку в число с плавающей запятой и оставить только 4 цифры после запятой.

str = '6.759104' number = float(str) result = '{:.4f}'.format(number) print(result)  # Output: # 6.7591

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

Таким образом, после применения функции format() мы получим 6.7591.

Заключение

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

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

Надеемся, данная статья была для вас полезна. Успехов в написании кода!

Перевод статьи «Python String to Float».

kak preobrazovat stroku v chislo s plavajushhej zapjatoj v python 941a708 - Как преобразовать строку в число с плавающей запятой в Python

Марк Лутц «Изучаем Python»

Скачивайте книгу у нас в телеграм

Скачать ×

  • 0 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Свежие комментарии

    Рубрики

    About Author 01.

    blank
    Roman Spiridonov

    Моя специальность - Back-end Developer, Software Engineer Python. Мне 39 лет, я работаю в области информационных технологий более 5 лет. Опыт программирования на Python более 3 лет. На Django более 2 лет.

    Categories 05.

    © Speccy 2022 / All rights reserved

    Связаться со мной
    Close