On 2008-02-10, Mark Dickinson <[EMAIL PROTECTED]> wrote:
> On Feb 9, 5:03 pm, Neal Becker <[EMAIL PROTECTED]> wrote:
>> If I use C code to turn off the hardware signal, will that stop python from
>> detecting the exception, or is python checking for 0 denominator on it's
>> own (hope not, that would waste cycles).
>
> Yes, Python does do an explicit check for a zero denominator.  Here's
> an excerpt from floatdiv.c in Objects/floatobject.c:
>
> if (b == 0.0) {
>     PyErr_SetString(PyExc_ZeroDivisionError, "float division");
>     return NULL;
> }
>
> This is probably the only sane way to deal with differences in
> platform behaviour when doing float divisions.

I've always found that check to be really annoying.  Every time
anybody asks about floating point handling, the standard
response is that "Python just does whatever the underlying
platform does".  Except it doesn't in cases like this. All my
platforms do exactly what I want for division by zero: they
generate a properly signed INF.  Python chooses to override
that (IMO correct) platform behavior with something surprising.
Python doesn't generate exceptions for other floating point
"events" -- why the inconsistency with divide by zero?

-- 
Grant Edwards                   grante             Yow!  Where's th' DAFFY
                                  at               DUCK EXHIBIT??
                               visi.com            
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to