我的这段代码的结果很奇怪(279.1 ... vs. 279.6 ...):

$ perl -e "print unpack('f>', pack ('f>', 279.117156982422));"
279.617156982422

虽然这个工作
$ perl -e "print unpack('f>', pack ('f>', 279.117256982422));"
279.117248535156

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

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

怎么了?这是解压缩非本地字节序浮点值的错误吗?

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

最佳答案

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

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

关于Perl对 float 值解压缩的奇怪行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18969702/

10-11 10:33