Float: примеры (PYTHON)

Использование функции float для преобразования чисел в Python
Раздел: Встроенные функции, Преобразование типов
float(x): float

Основы функции float

Функция float() в Python преобразует указанное значение в число с плавающей точкой. Она используется для явного преобразования данных различных типов в вещественные числа.

Сигнатура функции: float([x])

Аргументы:

  • x (необязательный) - значение для преобразования. Может быть строкой, целым числом или другим числовым типом. Если аргумент не указан, возвращает 0.0

Возвращаемое значение:

  • Число с плавающей точкой типа float
  • Если преобразование невозможно, вызывает исключение ValueError
  • При передаче нечислового типа без возможности преобразования вызывает TypeError

Функция поддерживает специальные строковые значения: 'inf', '-inf', 'nan' для представления бесконечности и не-числа.

Базовые примеры использования

Преобразование целых чисел:

num1 = float(10)
num2 = float(-5)
10.0
-5.0

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

num3 = float('3.14')
num4 = float('   -2.5  ')
3.14
-2.5

Специальные значения:

inf_val = float('inf')
nan_val = float('nan')
neg_inf = float('-infinity')
inf
nan
-inf

Без аргументов:

default_float = float()
0.0

Альтернативные функции Python

int() - преобразует в целое число, отбрасывая дробную часть. Используется когда нужны целочисленные значения.

Decimal() из модуля decimal - обеспечивает точные десятичные вычисления без ошибок округления. Предпочтительнее для финансовых операций.

complex() - создает комплексные числа. Применяется в математических и инженерных расчетах.

eval() - выполняет строку как код Python. Может преобразовывать строки в числа, но менее безопасна.

Аналоги в других языках программирования

JavaScript: parseFloat() и Number()

parseFloat('3.14'); // 3.14
Number('123'); // 123

PHP: floatval() и (float)

floatval('3.14'); // 3.14
(float) '42'; // 42.0

Java: Double.parseDouble() и Float.parseFloat()

Double.parseDouble('3.14'); // 3.14d

C#: Convert.ToDouble() и double.Parse()

Convert.ToDouble('3.14'); // 3.14

Golang: strconv.ParseFloat() с возвратом ошибки

strconv.ParseFloat('3.14', 64)

В отличие от Python, многие языки требуют явной обработки ошибок преобразования.

Типичные ошибки при использовании

Преобразование неподходящих строк:

float('abc')
ValueError: could not convert string to float: 'abc'

Ошибочные разделители:

float('3,14')
ValueError: could not convert string to float: '3,14'

Передача неконвертируемых объектов:

float([1, 2, 3])
TypeError: float() argument must be a string or a real number, not 'list'

Потеря точности при больших числах:

large_num = float(10**20)
print(large_num)
1e+20

Изменения в последних версиях Python

В Python 3.6 добавлена поддержка подчеркиваний в числовых литералах для лучшей читаемости:

float('1_000_000.5')
1000000.5

Python 3.8 улучшил производительность преобразования целых чисел в float.

Начиная с Python 3.10, сообщения об ошибках стали более информативными, указывая конкретную причину сбоя преобразования.

В Python 3.11 оптимизирована работа функции для повышения общей производительности интерпретатора.

Расширенные примеры использования

Работа с научной нотацией:

Пример python
sci1 = float('1.23e-4')
sci2 = float('2.5E6')
print(f'{sci1}, {sci2}')
0.000123, 2500000.0

Преобразование логических значений:

Пример python
bool_true = float(True)
bool_false = float(False)
print(bool_true, bool_false)
1.0 0.0

Обработка разных систем счисления через промежуточное преобразование:

Пример python
hex_str = '0xA.1'
hex_float = float(int(hex_str, 16))
print(hex_float)
10.0625

Цепочка преобразований с обработкой ошибок:

Пример python
def safe_float(value):
    try:
        return float(value)
    except (ValueError, TypeError):
        return None

results = [safe_float(x) for x in ['12.5', 'abc', None, '7e2']]
print(results)
[12.5, None, None, 700.0]

Использование в математических выражениях:

Пример python
from math import sqrt

str_numbers = ['4', '9', '16']
square_roots = [sqrt(float(x)) for x in str_numbers]
print(square_roots)
[2.0, 3.0, 4.0]

Сравнение с учетом погрешности:

Пример python
a = float('0.1') + float('0.2')
b = float('0.3')
print(a == b)
print(abs(a - b) < 1e-10)
False
True

питон float function comments

En
Float Convert to floating point