解压浮值时Perl奇怪的行为

Loi*_*oic 6 floating-point perl endianness

我有这个奇怪的结果片段(279.1 ...对279.6 ......):

$ perl -e "print unpack('f>', pack ('f>', 279.117156982422));"
279.617156982422
Run Code Online (Sandbox Code Playgroud)

虽然这个有效

$ perl -e "print unpack('f>', pack ('f>', 279.117256982422));"
279.117248535156
Run Code Online (Sandbox Code Playgroud)

那些也是

$ perl -e "print unpack('f<', pack ('f<', 279.117156982422));"
279.11715698242

$ perl -e "print unpack('f', pack ('f', 279.117156982422));"
279.117156982422
Run Code Online (Sandbox Code Playgroud)

怎么了?这是解压缩非本机端点浮点值的错误吗?

注意Perl是PC上Cygwin下的版本5.14.2 .

小智 1

这是海湾合作委员会的问题。

cpan -t Acme::Study::SREZIC 在我的 32 位系统上通过,其中 Perl 二进制文件是使用 GCC 4.5.4 或 4.6.3 或 4.6.4 编译的,而不会在 Perl 二进制文件使用 GCC 4.7 编译的系统上通过.3或4.8.3