msgpack5 | msgpack v5 implementation for node.js , with extension points
kandi X-RAY | msgpack5 Summary
kandi X-RAY | msgpack5 Summary
A msgpack v5 implementation for node.js, with extension points / msgpack.org[Node]
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- format a value into a nicely formatted string
- Writable stream .
- Echo contents .
- Internal recursive comparison function .
- Readable stream .
- Adds an event listener to the target .
- Populate the buffer from the buffer .
- Style stringify property
- This is the index of the single - index of a single - typed array of values .
- Destroys the stream and destroys it .
msgpack5 Key Features
msgpack5 Examples and Code Snippets
Community Discussions
Trending Discussions on msgpack5
QUESTION
When serializing and deserializing values between JavaScript and C# using SignalR with MessagePack I am seeing a bit of precision loss in C# on the receiving end.
As an example I am sending the value 0.005 from JavaScript to C#. When the deserialized value appears on the C# side I am getting the value 0.004999999888241291
, which is close, but not 0.005 exactly. The value on the JavaScript side is Number
and on the C# side I am using double
.
I have read that JavaScript can't represent floating point numbers exactly which can lead to results like 0.1 + 0.2 == 0.30000000000000004
. I suspect the issue I am seeing is related to this feature of JavaScript.
The interesting part is that I am not seeing the same issue going the other way. Sending 0.005 from C# to JavaScript results in the value 0.005 in JavaScript.
Edit: The value from C# is just shortened in the JS debugger window. As @Pete mentioned it does expand to something that is not 0.5 exactly (0.005000000000000000104083408558). This means the discrepancy happens on both sides at least.
JSON serialization does not have the same issue since I am assuming it goes via string which leaves the receiving environment in control wrt parsing the value into its native numerical type.
I am wondering if there is a way using binary serialization to have matching values on both sides.
If not, does this mean that there is no way to have 100% accurate binary conversions between JavaScript and C#?
Technology used:
- JavaScript
- .Net Core with SignalR and msgpack5
My code is based on this post.
The only difference is that I am using ContractlessStandardResolver.Instance
.
ANSWER
Answered 2020-Mar-27 at 18:59Please check the precise value you are sending to a bigger precision. Languages typically limits the precision on print to make it look better.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install msgpack5
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page