in dubbo/codec/decoder.py [0:0]
def read_double(self):
"""
读取一个浮点类型
:return:
"""
value = self.read_byte()
if value == 0x5b:
result = 0.0
elif value == 0x5c:
result = 1.0
elif value == 0x5d:
result = float(unpack('!b', self.read_bytes(1))[0])
elif value == 0x5e:
result = float(unpack('!h', self.read_bytes(2))[0])
elif value == 0x5f:
result = float(unpack('!i', self.read_bytes(4))[0]) * 0.001
elif value == ord('D'):
result = float(unpack('!d', self.read_bytes(8))[0])
else:
raise HessianTypeError('{0} is not a float'.format(value))
return result