blob: 3aa7d184188e61a44b3d2699977bf239ac7cfdcc [file] [log] [blame]
Georg Brandlf6842722008-01-19 22:08:21 +00001.. highlightlang:: c
2
3.. _floatobjects:
4
5Floating Point Objects
6----------------------
7
8.. index:: object: floating point
9
10
Sandro Tosi98ed08f2012-01-14 16:42:02 +010011.. c:type:: PyFloatObject
Georg Brandlf6842722008-01-19 22:08:21 +000012
Sandro Tosi98ed08f2012-01-14 16:42:02 +010013 This subtype of :c:type:`PyObject` represents a Python floating point object.
Georg Brandlf6842722008-01-19 22:08:21 +000014
15
Sandro Tosi98ed08f2012-01-14 16:42:02 +010016.. c:var:: PyTypeObject PyFloat_Type
Georg Brandlf6842722008-01-19 22:08:21 +000017
18 .. index:: single: FloatType (in modules types)
19
Sandro Tosi98ed08f2012-01-14 16:42:02 +010020 This instance of :c:type:`PyTypeObject` represents the Python floating point
Georg Brandlf6842722008-01-19 22:08:21 +000021 type. This is the same object as ``float`` and ``types.FloatType``.
22
23
Sandro Tosi98ed08f2012-01-14 16:42:02 +010024.. c:function:: int PyFloat_Check(PyObject *p)
Georg Brandlf6842722008-01-19 22:08:21 +000025
Sandro Tosi98ed08f2012-01-14 16:42:02 +010026 Return true if its argument is a :c:type:`PyFloatObject` or a subtype of
27 :c:type:`PyFloatObject`.
Georg Brandlf6842722008-01-19 22:08:21 +000028
29 .. versionchanged:: 2.2
30 Allowed subtypes to be accepted.
31
32
Sandro Tosi98ed08f2012-01-14 16:42:02 +010033.. c:function:: int PyFloat_CheckExact(PyObject *p)
Georg Brandlf6842722008-01-19 22:08:21 +000034
Sandro Tosi98ed08f2012-01-14 16:42:02 +010035 Return true if its argument is a :c:type:`PyFloatObject`, but not a subtype of
36 :c:type:`PyFloatObject`.
Georg Brandlf6842722008-01-19 22:08:21 +000037
38 .. versionadded:: 2.2
39
40
Sandro Tosi98ed08f2012-01-14 16:42:02 +010041.. c:function:: PyObject* PyFloat_FromString(PyObject *str, char **pend)
Georg Brandlf6842722008-01-19 22:08:21 +000042
Sandro Tosi98ed08f2012-01-14 16:42:02 +010043 Create a :c:type:`PyFloatObject` object based on the string value in *str*, or
Georg Brandlf6842722008-01-19 22:08:21 +000044 *NULL* on failure. The *pend* argument is ignored. It remains only for
45 backward compatibility.
46
47
Sandro Tosi98ed08f2012-01-14 16:42:02 +010048.. c:function:: PyObject* PyFloat_FromDouble(double v)
Georg Brandlf6842722008-01-19 22:08:21 +000049
Sandro Tosi98ed08f2012-01-14 16:42:02 +010050 Create a :c:type:`PyFloatObject` object from *v*, or *NULL* on failure.
Georg Brandlf6842722008-01-19 22:08:21 +000051
52
Sandro Tosi98ed08f2012-01-14 16:42:02 +010053.. c:function:: double PyFloat_AsDouble(PyObject *pyfloat)
Georg Brandlf6842722008-01-19 22:08:21 +000054
Sandro Tosi98ed08f2012-01-14 16:42:02 +010055 Return a C :c:type:`double` representation of the contents of *pyfloat*. If
Georg Brandlf6842722008-01-19 22:08:21 +000056 *pyfloat* is not a Python floating point object but has a :meth:`__float__`
57 method, this method will first be called to convert *pyfloat* into a float.
Antoine Pitrouc9e18002011-12-18 01:25:27 +010058 This method returns ``-1.0`` upon failure, so one should call
Sandro Tosi98ed08f2012-01-14 16:42:02 +010059 :c:func:`PyErr_Occurred` to check for errors.
Georg Brandlf6842722008-01-19 22:08:21 +000060
61
Sandro Tosi98ed08f2012-01-14 16:42:02 +010062.. c:function:: double PyFloat_AS_DOUBLE(PyObject *pyfloat)
Georg Brandlf6842722008-01-19 22:08:21 +000063
Sandro Tosi98ed08f2012-01-14 16:42:02 +010064 Return a C :c:type:`double` representation of the contents of *pyfloat*, but
Georg Brandlf6842722008-01-19 22:08:21 +000065 without error checking.
66
67
Sandro Tosi98ed08f2012-01-14 16:42:02 +010068.. c:function:: PyObject* PyFloat_GetInfo(void)
Georg Brandlf6842722008-01-19 22:08:21 +000069
70 Return a structseq instance which contains information about the
71 precision, minimum and maximum values of a float. It's a thin wrapper
72 around the header file :file:`float.h`.
73
74 .. versionadded:: 2.6
75
76
Sandro Tosi98ed08f2012-01-14 16:42:02 +010077.. c:function:: double PyFloat_GetMax()
Georg Brandlf6842722008-01-19 22:08:21 +000078
Sandro Tosi98ed08f2012-01-14 16:42:02 +010079 Return the maximum representable finite float *DBL_MAX* as C :c:type:`double`.
Georg Brandlf6842722008-01-19 22:08:21 +000080
81 .. versionadded:: 2.6
82
83
Sandro Tosi98ed08f2012-01-14 16:42:02 +010084.. c:function:: double PyFloat_GetMin()
Georg Brandlf6842722008-01-19 22:08:21 +000085
Sandro Tosi98ed08f2012-01-14 16:42:02 +010086 Return the minimum normalized positive float *DBL_MIN* as C :c:type:`double`.
Georg Brandlf6842722008-01-19 22:08:21 +000087
88 .. versionadded:: 2.6
Christian Heimes422051a2008-02-04 18:00:12 +000089
90
Sandro Tosi98ed08f2012-01-14 16:42:02 +010091.. c:function:: int PyFloat_ClearFreeList()
Christian Heimes422051a2008-02-04 18:00:12 +000092
Gregory P. Smith2fe77062008-07-06 03:35:58 +000093 Clear the float free list. Return the number of items that could not
94 be freed.
Christian Heimes422051a2008-02-04 18:00:12 +000095
96 .. versionadded:: 2.6
Eric Smithc12781a2009-10-19 14:38:14 +000097
98
Sandro Tosi98ed08f2012-01-14 16:42:02 +010099.. c:function:: void PyFloat_AsString(char *buf, PyFloatObject *v)
Eric Smithc12781a2009-10-19 14:38:14 +0000100
101 Convert the argument *v* to a string, using the same rules as
102 :func:`str`. The length of *buf* should be at least 100.
103
104 This function is unsafe to call because it writes to a buffer whose
105 length it does not know.
106
107 .. deprecated:: 2.7
108 Use :func:`PyObject_Str` or :func:`PyOS_double_to_string` instead.
109
110
Sandro Tosi98ed08f2012-01-14 16:42:02 +0100111.. c:function:: void PyFloat_AsReprString(char *buf, PyFloatObject *v)
Eric Smithc12781a2009-10-19 14:38:14 +0000112
113 Same as PyFloat_AsString, except uses the same rules as
114 :func:`repr`. The length of *buf* should be at least 100.
115
116 This function is unsafe to call because it writes to a buffer whose
117 length it does not know.
118
119 .. deprecated:: 2.7
120 Use :func:`PyObject_Repr` or :func:`PyOS_double_to_string` instead.