[Haskell-cafe] about integer and float operations

Manlio Perillo manlio_perillo at libero.it
Wed Feb 4 17:13:41 EST 2009


Yitzchak Gale ha scritto:
> [...]
> 
> exactDiv :: (Real a, Real b, Fractional c) => a -> b -> c
> x `exactDiv` y = realToFrac x / realToFrac y
> 
> Python does that same type coercion automatically at runtime.

No, this is not correct.

CPython converts to float only for a "simple" integer (since conversion 
from machine int to machine float will never overflow).

For a "long integer" it uses a special algorithm for computing the 
division, that avoids overflow if the final result is in the range of a 
float.

http://code.python.org/hg/trunk/file/tip/Objects/longobject.c#l2657

 > [...]


Thanks  Manlio Perillo


More information about the Haskell-Cafe mailing list