On Fri, Jan 11, 2008 at 03:57:39PM +0800, imacat wrote:
> Dear Ilya,
> 
> On Thu, 10 Jan 2008 23:30:56 -0800
> Ilya Zakharevich <[EMAIL PROTECTED]> wrote:
> > On Fri, Jan 11, 2008 at 01:37:25PM +0800, imacat wrote:
> > Sorry to do it so piecewise.  Next, could you check
> 
>     It's OK.  I'm here to help.
> 
> >   perl -wle '$ms = int(56345*1000 + 0.5); $s = int(0.001 * $ms); $ss = $s % 
> > 60; print for $ms, $s, $ss'
> 
> [EMAIL PROTECTED] build/MP3-Tag-0.9709-Xr2Xj_ % perl -wle '$ms = 
> int(56345*1000 + 0.5); $s = int(0.001 * $ms); $ss = $s % 60; print for $ms, 
> $s, $ss'
> 56345000
> 56344
> 4
> [EMAIL PROTECTED] build/MP3-Tag-0.9709-Xr2Xj_ %
> 
> >   perl -wle '$ms = int(56345*1000 + 0.5); $s = int(0.001 * ($ms + 0.5)); 
> > $ss = $s % 60; print for $ms, $s, $ss'
> 
> [EMAIL PROTECTED] build/MP3-Tag-0.9709-Xr2Xj_ % perl -wle '$ms = 
> int(56345*1000 + 0.5); $s = int(0.001 * ($ms + 0.5)); $ss = $s % 60; print 
> for $ms, $s, $ss'
> 56345000
> 56345
> 5
> [EMAIL PROTECTED] build/MP3-Tag-0.9709-Xr2Xj_ %
> 
>     Please tell me if you need any more information, or if I could be of
> any help.

No.  I'm just banging my head at the closest wall.

I happened to write a small paper about this on c.l.p.misc - even
before getting your answers ;-).  In short, it is a bug, but this bug
happens to be hidden on compiles with 64-bit IEEE numbers.  I expect
your compile uses 80-bit numbers (long double).

Thanks,
Ilya

P.S.  Just for reference, what is

  perl -wle "print sprintf q(%.55g), 0.001"

?

Reply via email to