gpt4 book ai didi

json.net - JObject.Parse 修改浮点值的结尾

转载 作者:行者123 更新时间:2023-12-03 06:32:18 28 4
gpt4 key购买 nike

var clientString = "{\"max\":1214.704958677686}";

JObject o = JObject.Parse(clientString);

var jsonString = o.ToString();
<小时/>

jsonString 的内容:

{
"max": 1214.7049586776859
}

这既是在可视化对象的过程中,也是在执行 ToString() 过程中。请注意,686 已神秘地扩展为 6859(添加了精度)。这对我们来说是一个问题,因为数字不完全相同,并且后面的 json 上的哈希函数不匹配。

最佳答案

@Ilija Dimov是正确的 - 默认情况下,JSON.NET 将 JSON float 解析为 double 。如果您仍然想使用 JObject 而不是创建完整的 POCO 进行反序列化,您可以使用 JsonTextReader 并设置 FloatParseHandling 选项:

var reader = new JsonTextReader(new StringReader(clientString));
reader.FloatParseHandling = FloatParseHandling.Decimal;

JObject obj = JObject.Load(reader);

Console.WriteLine(obj["max"].Value<decimal>()); // 1214.704958677686

关于json.net - JObject.Parse 修改浮点值的结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26484176/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com