Python 将十六进制转换为浮点后的结果是错误的

Python 将十六进制转换为浮点后的结果是错误的,python,python-3.x,struct,Python,Python 3.x,Struct,我正在尝试使用Python 3.6将十六进制4991a480转换为浮点 >>> struct.unpack('!f',bytes.fromhex("4991a480")) (1193104.0,) 但它不能正常工作 我想得到的结果是1.1931e+06。我使用了一个转换网站,它给出了我期望的结果。我做错了什么 打印的值实际上是您期望的答案,用长格式符号而不是科学符号书写。这里没有问题 有关科学记数法的更多信息,请参见。这是一样的,您只需要将其()格式化为指数记数法(): 请注

我正在尝试使用Python 3.6将十六进制
4991a480
转换为浮点

>>> struct.unpack('!f',bytes.fromhex("4991a480"))
(1193104.0,)
但它不能正常工作


我想得到的结果是1.1931e+06。我使用了一个转换网站,它给出了我期望的结果。我做错了什么

打印的值实际上是您期望的答案,用长格式符号而不是科学符号书写。这里没有问题


有关科学记数法的更多信息,请参见。

这是一样的,您只需要将其()格式化为指数记数法():


请注意,返回一个元组。

结果没有错,只是以不同的格式显示。你要找的是科学记数法。非常感谢你,这对我很有帮助!!
>>> import struct
>>> unpacked = struct.unpack("!f", bytes.fromhex("4991a480"))
>>> unpacked
(1193104.0,)
>>> print("{:e}".format(unpacked[0]))
1.193104e+06