我们在从对于python中将hex转化为float的问题。对于python3和python2的操作是不同的。
例如a=[0x45,0xaf,0xb9,0xdd]转化为float型数据为 5623.23
进行转化很简单:我们可以使用struct模块
import struct s=struct.unpack(">f",bytes(a))[0]
执行结果
其中struct.unpack返回的是一个元组
用python2转化的话会比python3麻烦很多,如果按照上面的写法,python2会报错
struct.error: unpack requires a string argument of length 4
因此我们要使用另外一个模块binascii模块:
import struct import binascii a=[0x45,0xaf,0xb9,0xdd] d='' for i in a: d=d+"%02X"%i #将hex转化为hex字符串 s=struct.unpack('>f',binascii.unhexlify(d))[0]
要指定小数位数,可以使用round函数
s=5623.23291015625 re_f=round(s,2)