Interesting!
There are many other values which are also assigned incorrectly by those old perls.
If TinyPerl has the POSIX module you might find that assigning by using POSIX::strtod() fixes the problem.
This works for me on my Windows perl-5.10:
>perl -MPOSIX -le "$d = POSIX::strtod('1180591620717411303424.0'); pri
+nt unpack ('H*', reverse(pack('d', $d)));"
4450000000000000
However, IIRC, there are other values that the strtod function provided by old gcc versions (and hence also POSIX::strtod on old perls) will assign incorrectly.
In such cases, a gcc upgrade is one solution.
Cheers, Rob
| [reply] [d/l] |