[Numpy-discussion] Possible bug: uint64 + int gives float64

Sturla Molden sturla@molden...
Sun Jun 13 11:30:48 CDT 2010


Den 13.06.2010 18:19, skrev Charles R Harris:
>
> It's the combination of unsigned with signed that causes the 
> promotion. The int64 type can't hold the largest values in uint64. 
> Strictly speaking, doubles can't hold either of the 64 bit integer 
> types without loss of precision but at least the degradation is more 
> gradual. Another possibility here would be to raise an error/warning 
> because no suitable integer type is available, that would be perhaps 
> less surprising than the promotion to float.

As I see it, the 'correct' solution would be coercion to an arbitrarily 
long integer, such as 'long' in Python 2 and 'int' in Python 3.

Sturla



More information about the NumPy-Discussion mailing list