本文介绍了Json.NET十进制精度损失的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我反序列化十进制值时遇到问题.
I have an issue with deserializing decimal value.
JObject.Parse("{\"available\":8777.831438322572000}")
如果我在VS下的调试器中键入此代码,则结果为
If I type this code in VS under debugger the result is
"available": 8777.8314383225716
如果我尝试这个
obj.Value<decimal>("available")
结果为8777.83143832257
我在哪里错了?我应该使用哪种api方法来获得正确的结果?
Where am I wrong?What api methods should I use to get correct results?
推荐答案
JObject.Parse("{\"available\":8777.831438322572000}")
的结果是double
.第二条语句的结果为decimal
.
The result of JObject.Parse("{\"available\":8777.831438322572000}")
is a double
. The second statement results in a decimal
.
double
具有浮点精度,不如decimal
那样精确.
The double
has floating point precision, which is not that precise as a decimal
.
这篇关于Json.NET十进制精度损失的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!