◐ Shell
clean mode source ↗

Issue 29522: PyLong_AsDouble Behaviour is Weird

I'm using the pre-installed version of Python 2.7.12 on Ubuntu 16.04. Pretty straight forward error the following code:

PyObject * intobj = PyInt_FromLong(10);
double d1 = (double)PyLong_AsLong(intobj);
double d2 = PyLong_AsDouble(intobj);
printf("Should be the same: %f vs %f", d1, d2);

Does not display the same number for both double since `PyLong_AsDouble` raises the error, SystemError: ../Objects/longobject.c:2336: bad argument to internal function and returns -1.0 instead of 10.0.