JSON-Viewer
JSON-Viewer copied to clipboard
Format JSON changes numeric values
I noticed that some numeric values are changed after formatting the JSON.
To reproduce:
1.Input the following text and select it
{"number":-1722.1864265316147}
2.Format text using "Plugins-JSON Viewer-Format JSON"
3.The result is
{
"number": -1722.1864265316149
}
Thanks for reporting. Check release 1.32 in releases section.
Hi, the issue does not appear to be totally fixed to me.
With v.1.32, input
{"number":-1722.1864265316147}
is correctly formatted to
{
"number": -1722.1864265316147
}
However, adding a 9 at the end:
{"number":-1722.18642653161479}
gives the incorrect rounding
{
"number": -1722.1864265316149
}
This is related to a precision issue while converting string to double in the JSON parsing library. Other way is to parse the number to string. But, then it starts to show numbers inside quotes after formatting. I am trying to find out what could be done here. Let me know if anyone has a solution.
Another example is
{ "Id": 100000000302052988.0 }
After "JSON Format" the value is 100000000302052990.
yet another precision error case: lat long coordinates in plain text: [12.148681171238422,42.835353759876654] After "JSON Format": [12.148681171238423, 42.835353759876657]
This is an annoying issue. Scientific values are also messed up, for example:
{"timeInfo":{"defaultTimeInterval":1.234e5}}
becomes
{
"timeInfo": {
"defaultTimeInterval": 123400.0
}
}
Is it really necessary for a formatter to convert numeric string values to anything? My (maybe naive) idea would be that a formatter should just insert some newlines and whitespace at the correct locations and be done with it. But if it's really unavoidable, would it maybe be possible to write the original string value, rather than the parsed numeric value?
Potentially related to #78 (issue with parsing)