解析JSON舍入负值

Irf*_*son 1 c# rounding json.net

我正在使用NewtonSoft的JSON.NET程序集在C#控制台应用程序中加载.json文件.我想我已经完成了大部分工作,除了我发现一些负浮动值正在被舍入.

这是相关的代码; 正如你所看到的,我曾经尝试都loadparse方法,但相同的结果.

string content;
using (StreamReader reader = new StreamReader("C:\\[Path]\brackett_full_room.json"))
{
  content = reader.ReadToEnd();
}

////  JObject rss = JObject.Load(reader);
JObject rss = JObject.Parse(content);
Run Code Online (Sandbox Code Playgroud)

原始值如下:

"geometry" : {  "rings" : [   [   [  -9221300.3411999997, 4120326.8838  ],
    [  -9221300.2146000005,  4120327.992399998  ]...
Run Code Online (Sandbox Code Playgroud)

但是-9221300.3411999997变得像-9221300.3412rss变,这是导致坐标到不行; 长期正面值很好.

是否有某种方法可以保持足够高的精度(即如果解析为具有足够的数字double而不是float)?

Ond*_*dar 6

一些代码安德鲁的正确答案:

var settings = new JsonSerializerSettings();
settings.FloatParseHandling = FloatParseHandling.Decimal;
string json = @"{ ""rings"" : [  -9221300.3411999997, 4120326.8838  ] }";
var rss = JsonConvert.DeserializeObject(json, settings);
Run Code Online (Sandbox Code Playgroud)