[IronPython] System.Exception: can't convert 66.6 to System.Int32

PhiHo Hoang phiho.hoang at rogers.com
Sun May 8 05:12:31 PDT 2005


Jim Hugunin wrote:

> PhiHo Hoang wrote:
> >     Why 66.6 cannot be converted to System.Int32 ?
> 66.6 can be both explicitly converted to an int and compared to one.

>    >>> int(66.6)
>    66
>    >>> 12 < 66.6
>    True
>    >>> 66.6 < 12
>    False

> It's a good thing that 66.6 won't be implicitly converted to an int
> since that would lose precision.

> > >>> a
> > [333, 1234.5, 1, 333, -1, 66.6]
> > >>> a.sort()
> > System.InvalidOperationException: Failed to compare two elements in
> > the array. -

> However, you're right that IronPython doesn't handle this correctly for
> sorting an array.  We already have one bug for sorting mixed-type arrays
> (bug #63) but it's nice to add this case as well to the set we need to 
> fix.

    Talking of precision, for sorting, wouldn't it be more precise to 
    convert int to float instead of float to int, when there is a mixture ?

    Thanks,

    PhiHo



More information about the users-ironpython.com mailing list