我正在尝试使用struct将float转换为十六进制字符串。
然后我正在尝试将字符串转换为float。
第一个浮点数与将字符串转换为浮点数后的浮点数不同。
import struct
f = 1.23456
s = struct.pack("!f", f) # '?\x9e\x06\x10'
t = struct.unpack('!f', s)[0] # 1.2345600128173828
我想知道为什么精度不同而t
不相等:1.23456
我可以将t
截断为8位小数,但不确定是否正确。
是否有更好的方法可以实现这一目标?