Irf*_*son 1 c# rounding json.net
我正在使用NewtonSoft的JSON.NET程序集在C#控制台应用程序中加载.json文件.我想我已经完成了大部分工作,除了我发现一些负浮动值正在被舍入.
这是相关的代码; 正如你所看到的,我曾经尝试都load和parse方法,但相同的结果.
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.3412在rss变,这是导致坐标到不行; 长期正面值很好.
是否有某种方法可以保持足够高的精度(即如果解析为具有足够的数字double而不是float)?
一些代码安德鲁的正确答案:
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)