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" ?
