This document is for an old version of Python that is no longer supported. You should upgrade and read the Python 当前稳定版本的文档.

# 浮点数对象

`PyFloatObject`

  这个C类型 `PyObject` 的子类型代表一个Python浮点数对象。

PyTypeObject `PyFloat_Type`

  This instance of `PyTypeObject` represents the Python floating point type. This is the same object as `float` and `types.FloatType`.

int `PyFloat_Check`(PyObject *p)

  当他的参数是一个C类型 `PyFloatObject` 或者是C类型 `PyFloatObject` 的子类型时，返回真。

  在 2.2 版更改: Allowed subtypes to be accepted.

int `PyFloat_CheckExact`(PyObject *p)

  当他的参数是一个C类型 `PyFloatObject` 但不是C类型 `PyFloatObject` 的子类型时，返回真。

  2.2 新版功能.

PyObject* `PyFloat_FromString`(PyObject *str, char **pend)
  Return value: New reference.

  Create a `PyFloatObject` object based on the string value in str, or NULL on failure. The pend argument is ignored. It remains only for backward compatibility.

PyObject* `PyFloat_FromDouble`(double v)
  Return value: New reference.

  Create a `PyFloatObject` object from v, or NULL on failure.

double `PyFloat_AsDouble`(PyObject *pyfloat)

  返回一个代表 pyfloat 内容的C类型 `double`。如果 float 不是一个Python浮点数对象，但是包含 `__float__()` 方法，这个方法会首先被调用，将 pyfloat 转换成一个浮点数。失败时这个方法返回 `-1.0`，所以应该调用C函数 `PyErr_Occurred()` 检查错误。

double `PyFloat_AS_DOUBLE`(PyObject *pyfloat)

  返回一个 pyfloat 内容的 C `double` 表示，但没有错误检查。

PyObject* `PyFloat_GetInfo`(void)

  返回一个 structseq 实例，其中包含有关 float 的精度、最小值和最大值的信息。 它是头文件 `float.h` 的一个简单包装。

  2.6 新版功能.

double `PyFloat_GetMax`()

  返回最大可表示的有限浮点数 DBL_MAX 为 C `double` 。

  2.6 新版功能.

double `PyFloat_GetMin`()

  返回最小可表示归一化正浮点数 DBL_MIN 为 C `double` 。

  2.6 新版功能.

int `PyFloat_ClearFreeList`()

  清空浮点数释放列表。 返回无法释放的项目数。

  2.6 新版功能.

void `PyFloat_AsString`(char *buf, PyFloatObject *v)

  Convert the argument v to a string, using the same rules as `str()`. The length of buf should be at least 100.

  This function is unsafe to call because it writes to a buffer whose length it does not know.

  2.7 版后已移除: Use `PyObject_Str()` or `PyOS_double_to_string()` instead.

void `PyFloat_AsReprString`(char *buf, PyFloatObject *v)

  Same as PyFloat_AsString, except uses the same rules as `repr()`. The length of buf should be at least 100.

  This function is unsafe to call because it writes to a buffer whose length it does not know.

  2.7 版后已移除: Use `PyObject_Repr()` or `PyOS_double_to_string()` instead.