Raymond Hettinger wrote:
> Was some thought given to possibly adding these as
> float methods instead of as separate functions?
> 
>      float.isinf()
>      float.isnan()
> 
> Also, it would be useful to have a new method, float.is_integer().  This 
> would be better than the current approach where we make the 
> test:  if x == floor(x).

No, I haven't thought about it. I could add isinf (or better is_inf?) to
the float type but the methods in the math and cmath module should stay
as well. They can also deal with complex and integer numbers.

+1 for is_integer

static PyObject *
float_is_integer(PyObject *v)
{
        double x = PyFloat_AsDouble(v);
        PyObject *o;
        
        if (x == -1.0 && PyErr_Occurred())
                return NULL;
        if (!Py_IS_FINITE(x))
                Py_RETURN_FALSE;
        PyFPE_START_PROTECT("is_integer", return 0)
        o = (floor(x) == x) ? Py_True : Py_False;
        PyFPE_END_PROTECT(x)
        if (errno != 0) {
                PyErr_SetFromErrno(errno == ERANGE ? PyExc_OverflowError :
                                                     PyExc_ValueError);
                return NULL;
        }
        Py_INCREF(o);
        return o;
}


Christian
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to