嗨,我在linux上解析-0.000000e+00时有问题(在windows上运行)。在
struct.pack( "d", -0.000000e+00 )
在linux上结构包将-0.000000e+00更改为0.000000e+00。当我打印包装前的值是正确的,但结果结构包好像是0.000000e+00。在
有解决这个问题的办法吗。在
我想我需要加上最接近0的负数。怎么做?在
编辑
struct.pack( "d", -0.000000e+00 )
结果'\x00\x00\x00\x00\x00\x00\x00\x00\x80'
struct.pack( "!d", -0.000000e+00 )
结果'\x00\x00\x00\x00\x00\x00\x00\x00\x00'
struct.pack( "<d", -0.000000e+00 )
结果'\x00\x00\x00\x00\x00\x00\x00\x00\x00'
struct.pack( ">d", -0.000000e+00 )
结果'\x00\x00\x00\x00\x00\x00\x00\x00\x00'
我想用“<;d”和“>;d”。在
编辑Sry not error。在
结构格式字符串
"d"
以特定于平台的方式对值进行编码。最有可能的是,解码bytestring的平台具有不同的endianess或长度的双精度。使用!
格式字符强制独立于平台的编码:还要确保使用受支持的Python版本。在cPython<;2.5中,struct被认为是有缺陷的。更新到当前版本,如2.7或3.2。在
相关问题 更多 >
编程相关推荐