On Wed, 17 Mar 2004, Leopold Toetsch wrote:

> Simon Glover <[EMAIL PROTECTED]> wrote:
>
> >  This code:
>
> >         new P0, .PerlNum
> >         set P0, -1.2
> >         new P1, .PerlString
> >         set P1, "-1.2"
> >         eq_num P0, P1, OK
> >         print "not "
> > OK:     print "ok\n"
> >         end
>
> >  [And yes, I'm well aware of the problems inherent in doing floating point
> >   comparisons.
>
> Breakpoint 1, Parrot_PerlNum_cmp_num (interpreter=0x82654f0, pmc=0x40305850,
>     value=0x40305838) at perlnum.c:301
> 301         diff = PMC_num_val(pmc) - VTABLE_get_number(interpreter, value);
> (gdb) n
> 302         return diff > 0 ? 1 : diff < 0 ? -1 : 0;
> (gdb) p diff
> $1 = 2.2204460492503131e-16
> (gdb)

 OK, that suggests that there's a bug somewhere in our string->number
 conversion. Either that, or we're going to have to live with the fact
 that 1.2 and '1.2' are not the same number (which would suck).

 Simon


Reply via email to