首页 > 解决方案 > Python:将 8 字节 IEEE754 数字转换为浮点数

问题描述

我有以下 8 字节字符串,它构成二进制文件的一部分

b = b'?\xf0\x00\x00\x00\x00\x00\x00'

我想将其转换为浮点数(应该等于 7.371791007870371e+05)。到目前为止,我尝试过的方法都没有奏效:

在这两种情况下,引发的错误都表明字符串“b”是无效的,但我不明白这是怎么可能的,因为它是直接从二进制文件中读取的。

标签: pythonfloating-pointbinarytype-conversion

解决方案


这应该将字节解包为双精度(8 个字节,而不是 4 个字节的浮点数)。请注意,我使用来自@wim 的值。

import struct
print(struct.unpack('d', b'\xc8[\x9a36\x7f&A')[0])

推荐阅读