def adddouble(key, num)
key = _argstr(key)
num = _argnum(num)
if !@sock
@ecode = EINVALID
return nil
end
integ = num.truncate
fract = ((num - integ) * 1000000000000).truncate
sbuf = [0xC8, 0x61, key.length].pack("CCN")
sbuf += _packquad(integ) + _packquad(fract) + key
if !_send(sbuf)
@ecode = ESEND
return nil
end
code = _recvcode
if code == -1
@ecode = ERECV
return nil
end
if code != 0
@ecode = EKEEP
return nil
end
integ = _recvint64()
fract = _recvint64()
return integ + fract / 1000000000000.0
end