使用ARM CPU的机器上的奇怪python行为

Blo*_*ard 10 python floating-point arm

什么可能导致这种奇怪的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
>>>
Run Code Online (Sandbox Code Playgroud)

它提供了相同的输出0.1,0.5,5.1,0.0,等整数正确地回送了我一眼,但小数点任何东西让我疯狂的数字.

这是为ARM编译的python二进制文件,通过Synware DiskStation 101j上的Optware安装.

以前有人见过这样的事吗?

zxc*_*cat 8

也许它是针对错误的VFP版本编译的.

或者您的ARM没有VFP,而是需要使用软件仿真,但python二进制文件尝试使用硬件.


编辑

您的DS-101j基于FW IXP420 BB cpu,即Intel XScale(armv5b)(链接).它没有硬件浮点支持.armv5b中的"b"代表Big Endian.有些人构建了问题,因为默认情况下gcc会生成一些小端代码.也许这就是你的软件FP lib的问题.检查此搜索以获取更多信息.