[Python-Dev] Floor division (original) (raw)

Nick Maclaren nmm1 at cus.cam.ac.uk
Fri Jan 26 10:19:23 CET 2007


"Guido van Rossum" <guido at python.org> wrote:

"(int)floatordouble" truncates in C (even in K&R C) /provided that/ the true result is representable as an int. Else behavior is undefined (may return -1, may cause a HW fault, ...).

Actually, I have used Cs that didn't, but haven't seen any in over 10 years. C90 is unclear about its intent, but C99 is specific that truncation is towards zero. This is safe, at least for now.

So Python uses C's modf() for float->int now, which is always defined for finite floats, and also truncates.

Yes. And that is clearly documented and not currently likely to change, as far as I know.

Regards, Nick Maclaren, University of Cambridge Computing Service, New Museums Site, Pembroke Street, Cambridge CB2 3QH, England. Email: nmm1 at cam.ac.uk Tel.: +44 1223 334761 Fax: +44 1223 334679



More information about the Python-Dev mailing list