双重打包号码时出错

时间:2017-04-12 23:54:16

标签: python python-3.x

我有一些看起来像的代码:

import struct

def Get_Float(paintwear):
    buf = struct.pack('i', paintwear)
    item_float = struct.unpack('f', buf)[0]
    return item_float

paintwear = 1033975072
item_float = Get_Float(paintwear)
print(item_float)

这有效,并给我item_float为0.07871460914611816。但是,我试图通过双重解压缩这个数字来更具体:

import struct

def Get_Float(paintwear):
    buf = struct.pack('i', paintwear)
    item_float = struct.unpack('d', buf)[0]
    return item_float

paintwear = 1033975072
item_float = Get_Float(paintwear)
print(item_float)

我将f更改为d,现在我收到此错误:struct.error: unpack requires a bytes object of length 8

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

使用浮点数格式:

return "{:.22f}".format(item_float)

其中22是小数点后返回的数字位数(或许多必需数字)。