浮点数对象

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.