次の方法(Python 2.7)を使用して、16進値をfloatに変換しようとしています。
def hex2float(x):
y = 0
z = x.decode('hex')
try:
y = struct.unpack('!f', z)[0]
except:
print sys.exc_info()[1]
print 'z = ' + z
print 'y = %s' % (y)
print 'x = ' + x
return
def foo28():
x = '615885' #8.9398e-039
hex2float(x)
出力は次のとおりです。
unpack requires a string argument of length 4
z = aXà
y = 0
x = 615885
非常に小さい値に対して例外メッセージが表示されることに気付きました。このような場合に16進値を浮動小数点値に変換する適切な方法はありますか?