什么可能导致这种奇怪的python行为?
Python 2.6.2 (r262:71600, May 31 2009, 03:55:41)
[GCC 3.3.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> .1
1251938906.2350719
>>> .1
0.23507189750671387
>>> .1
0.0
>>> .1
-1073741823.0
>>> .1
-1073741823.0
>>> .1
-1073741823.0
>>>
它为0.1
,0.5
,5.1
,0.0
等提供了相同的输出。整数正确地回显给我,但任何小数点都有给了我疯狂的数字。
这是为ARM编译的python二进制文件,通过Optware安装在Synology DiskStation 101j上。
以前有人见过这样的事吗?
答案 0 :(得分:8)
也许它是针对错误的VFP版本编译的。
或者您的ARM没有VFP,而是需要使用软件仿真,但python二进制文件尝试使用硬件。
修改强>
您的DS-101j基于 FW IXP420 BB cpu, Intel XScale(armv5b)(link)。它没有硬件浮点支持。 armv5b中的“b”代表Big Endian。有些人构建了问题,因为默认情况下gcc会生成一些小端代码。也许这就是你的软件FP lib的问题。查看this search了解详情。
答案 1 :(得分:0)
正如zxcat所说,这听起来像是在ARM上运行,没有硬件浮点和被破坏的软浮点库。快速搜索没有发现DS101j中的ARM变体;有人知道吗?