[IronPython] System.Exception: can't convert 66.6 to System.Int32
Travis Watkins
alleykat at gmail.com
Sun May 8 14:54:59 CEST 2005
On 5/8/05, PhiHo Hoang <phiho.hoang at rogers.com> wrote:
> 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
>
> _______________________________________________
> users-ironpython.com mailing list
> users-ironpython.com at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
Yeah, you could probably convert all the ints to floats during the
comparison then convert them back afterward.
--
Travis Watkins
http://www.realistanew.com
More information about the Ironpython-users
mailing list