如何在python中转换浮点数?

Ram*_*mil 2 python floating-point hex

如何将浮点数转换为基数为16的数字,python中每32位FLP数为8个十六进制数?

例如: input = 1.2717441261e+20 output wanted : 3403244E

Bla*_*air 6

如果需要IEEE-754表示的字节值,struct模块可以执行以下操作:

>>> import struct
>>> f = 1.2717441261e+20
>>> struct.pack('f', f)
'\xc9\x9c\xdc`'
Run Code Online (Sandbox Code Playgroud)

这是字节的字符串版本,然后可以将其转换为十六进制值的字符串表示形式:

>>> struct.pack('f', f).encode('hex')
'c99cdc60'
Run Code Online (Sandbox Code Playgroud)

并且,如果您希望它作为十六进制整数,请将其解析为:

>>> s = struct.pack('f', f).encode('hex')
>>> int(s, 16)
3382500448
Run Code Online (Sandbox Code Playgroud)

要将整数显示为十六进制:

>>> hex(int(s, 16))
'0xc99cdc60'
Run Code Online (Sandbox Code Playgroud)

请注意,这与您问题中的十六进制值不匹配 - 如果您的值是您想要的正确值,请更新问题以说明它是如何派生的.