10

什么可能导致这种奇怪的蟒蛇行为?

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 上。

有没有人见过这样的事情?

4

2 回答 2

8

也许它是为错误的VFP版本编译的。

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


编辑

您的 DS-101j 构建在FW IXP420 BB cpu 上,它是Intel XScale (armv5b) (链接)。它没有硬件浮点支持。armv5b 中的“b”代表 Big Endian。有些人有构建问题,因为 gcc 默认生成小端代码。也许这是您的软件 FP lib 的问题。检查此搜索以获取更多信息。

于 2009-09-03T05:26:21.587 回答
0

正如 zxcat 所说,这听起来就像您在没有硬件浮点和损坏的软浮点库的 ARM 上运行。快速搜索并没有找到 DS101j 中的 ARM 变体;有人知道吗?

于 2009-09-03T16:17:14.420 回答