Home | History | Annotate | Download | only in c-api
      1 .. highlightlang:: c
      2 
      3 .. _floatobjects:
      4 
      5 Floating Point Objects
      6 ----------------------
      7 
      8 .. index:: object: floating point
      9 
     10 
     11 .. c:type:: PyFloatObject
     12 
     13    This subtype of :c:type:`PyObject` represents a Python floating point object.
     14 
     15 
     16 .. c:var:: PyTypeObject PyFloat_Type
     17 
     18    .. index:: single: FloatType (in modules types)
     19 
     20    This instance of :c:type:`PyTypeObject` represents the Python floating point
     21    type.  This is the same object as ``float`` and ``types.FloatType``.
     22 
     23 
     24 .. c:function:: int PyFloat_Check(PyObject *p)
     25 
     26    Return true if its argument is a :c:type:`PyFloatObject` or a subtype of
     27    :c:type:`PyFloatObject`.
     28 
     29    .. versionchanged:: 2.2
     30       Allowed subtypes to be accepted.
     31 
     32 
     33 .. c:function:: int PyFloat_CheckExact(PyObject *p)
     34 
     35    Return true if its argument is a :c:type:`PyFloatObject`, but not a subtype of
     36    :c:type:`PyFloatObject`.
     37 
     38    .. versionadded:: 2.2
     39 
     40 
     41 .. c:function:: PyObject* PyFloat_FromString(PyObject *str, char **pend)
     42 
     43    Create a :c:type:`PyFloatObject` object based on the string value in *str*, or
     44    *NULL* on failure.  The *pend* argument is ignored.  It remains only for
     45    backward compatibility.
     46 
     47 
     48 .. c:function:: PyObject* PyFloat_FromDouble(double v)
     49 
     50    Create a :c:type:`PyFloatObject` object from *v*, or *NULL* on failure.
     51 
     52 
     53 .. c:function:: double PyFloat_AsDouble(PyObject *pyfloat)
     54 
     55    Return a C :c:type:`double` representation of the contents of *pyfloat*.  If
     56    *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.
     58    This method returns ``-1.0`` upon failure, so one should call
     59    :c:func:`PyErr_Occurred` to check for errors.
     60 
     61 
     62 .. c:function:: double PyFloat_AS_DOUBLE(PyObject *pyfloat)
     63 
     64    Return a C :c:type:`double` representation of the contents of *pyfloat*, but
     65    without error checking.
     66 
     67 
     68 .. c:function:: PyObject* PyFloat_GetInfo(void)
     69 
     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 
     77 .. c:function:: double PyFloat_GetMax()
     78 
     79    Return the maximum representable finite float *DBL_MAX* as C :c:type:`double`.
     80 
     81    .. versionadded:: 2.6
     82 
     83 
     84 .. c:function:: double PyFloat_GetMin()
     85 
     86    Return the minimum normalized positive float *DBL_MIN* as C :c:type:`double`.
     87 
     88    .. versionadded:: 2.6
     89 
     90 
     91 .. c:function:: int PyFloat_ClearFreeList()
     92 
     93    Clear the float free list. Return the number of items that could not
     94    be freed.
     95 
     96    .. versionadded:: 2.6
     97 
     98 
     99 .. c:function:: void PyFloat_AsString(char *buf, PyFloatObject *v)
    100 
    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 
    111 .. c:function:: void PyFloat_AsReprString(char *buf, PyFloatObject *v)
    112 
    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.
    121