> **Источник:** https://python-all.ru/3.8/c-api/float.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# Объекты с плавающей запятой

**`PyFloatObject`**

Этот подтип [`PyObject`](https://python-all.ru/3.8/c-api/structures.html#c.PyObject) представляет объект Python с плавающей запятой.

**[PyTypeObject](https://python-all.ru/3.8/c-api/type.html#c.PyTypeObject) `PyFloat_Type`**

Этот экземпляр [`PyTypeObject`](https://python-all.ru/3.8/c-api/type.html#c.PyTypeObject) представляет тип с плавающей запятой Python. Это тот же объект, что и [`float`](https://python-all.ru/3.8/library/functions.html#float) на уровне Python.

#### `int PyFloat_Check(PyObject *p)`

Возвращает истину, если аргумент является [`PyFloatObject`](https://python-all.ru/3.8/c-api/float.html#c.PyFloatObject) или подтипом [`PyFloatObject`](https://python-all.ru/3.8/c-api/float.html#c.PyFloatObject).

#### `int PyFloat_CheckExact(PyObject *p)`

Возвращает истину, если аргумент является [`PyFloatObject`](https://python-all.ru/3.8/c-api/float.html#c.PyFloatObject), но не подтипом [`PyFloatObject`](https://python-all.ru/3.8/c-api/float.html#c.PyFloatObject).

#### `PyObject* PyFloat_FromString(PyObject *str)`

*Возвращаемое значение: новая ссылка.*

Создаёт объект [`PyFloatObject`](https://python-all.ru/3.8/c-api/float.html#c.PyFloatObject) на основе строкового значения *str* или `NULL` в случае ошибки.

#### `PyObject* PyFloat_FromDouble(double v)`

*Возвращаемое значение: новая ссылка.*

Создаёт объект [`PyFloatObject`](https://python-all.ru/3.8/c-api/float.html#c.PyFloatObject) из *v* или `NULL` в случае ошибки.

#### `double PyFloat_AsDouble(PyObject *pyfloat)`

Возвращает представление содержимого *pyfloat* в виде C `double`. Если *pyfloat* не является объектом Python с плавающей точкой, но имеет метод [`__float__()`](https://python-all.ru/3.8/reference/datamodel.html#object.__float__), этот метод будет сначала вызван для преобразования *pyfloat* в число с плавающей точкой. Если `__float__()` не определён, то используется [`__index__()`](https://python-all.ru/3.8/reference/datamodel.html#object.__index__). Этот метод возвращает `-1.0` при ошибке, поэтому для проверки ошибок следует вызывать [`PyErr_Occurred()`](https://python-all.ru/3.8/c-api/exceptions.html#c.PyErr_Occurred).

Изменено в версии 3.8: Используйте [`__index__()`](https://python-all.ru/3.8/reference/datamodel.html#object.__index__), если доступно.

#### `double PyFloat_AS_DOUBLE(PyObject *pyfloat)`

Возвращает представление содержимого *pyfloat* в виде C `double`, но без проверки ошибок.

#### `PyObject* PyFloat_GetInfo(void)`

*Возвращаемое значение: новая ссылка.*

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

#### `double PyFloat_GetMax()`

Возвращает максимальное представимое конечное число с плавающей точкой *DBL\_MAX* в виде C `double`.

#### `double PyFloat_GetMin()`

Возвращает минимальное нормализованное положительное число с плавающей точкой *DBL\_MIN* в виде C `double`.

#### `int PyFloat_ClearFreeList()`

Очищает список свободных float. Возвращает количество элементов, которые не удалось освободить.
