我正在使用 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);
原始值如下:
"geometry" : { "rings" : [ [ [ -9221300.3411999997, 4120326.8838 ],
[ -9221300.2146000005, 4120327.992399998 ]...
但是 -9221300.3411999997
在 rss
变量中变成类似 -9221300.3412
的东西,这导致坐标不起作用;长的正值没问题。
有没有办法保持足够高的精度(即,如果解析为 double
而不是 float
,应该有足够的数字)?
最佳答案
安德鲁正确答案的一些代码:
var settings = new JsonSerializerSettings();
settings.FloatParseHandling = FloatParseHandling.Decimal;
string json = @"{ ""rings"" : [ -9221300.3411999997, 4120326.8838 ] }";
var rss = JsonConvert.DeserializeObject(json, settings);
关于c# - 解析 JSON 轮负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28681900/