You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Due to the limitation of javascript the way numbers are store, 64 bit integers can not represented correctly.
msgpack decodes a 64 bit number as ordinary javascript numeric type which is incorrect and looses precision.
n = "18446464814936021036"
x = [ 0xcf, 0xff, 0xff, 0x02, 0x04, 0x00, 0x00, 0xd8, 0x2c ]
a = msgpack.unpack(x)
a == 1844646481493602000 // not equal to n
unittest for this is incorrect too.
Need an alternate way to encode/decode 64 bit numbers to/from msgpack format
The text was updated successfully, but these errors were encountered:
hi, I did write some code to implement this for my own use. But my implemention used BigInt type directly and ignored backward compatibility. Due to the compatibility issue, I think it won't be a good PR, but it could be a reference if you need. Here is my commit bin-y@bccf8a0
Due to the limitation of javascript the way numbers are store, 64 bit integers can not represented correctly.
msgpack decodes a 64 bit number as ordinary javascript numeric type which is incorrect and looses precision.
n = "18446464814936021036"
x = [ 0xcf, 0xff, 0xff, 0x02, 0x04, 0x00, 0x00, 0xd8, 0x2c ]
a = msgpack.unpack(x)
a == 1844646481493602000 // not equal to n
unittest for this is incorrect too.
Need an alternate way to encode/decode 64 bit numbers to/from msgpack format
The text was updated successfully, but these errors were encountered: