Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Format JSON changes numeric values #39

Open
ertasso opened this issue Oct 12, 2018 · 7 comments
Open

Format JSON changes numeric values #39

ertasso opened this issue Oct 12, 2018 · 7 comments

Comments

@ertasso
Copy link

ertasso commented Oct 12, 2018

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
}

@kapilratnani
Copy link
Collaborator

Thanks for reporting. Check release 1.32 in releases section.

@GabrieleDiCorato
Copy link

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
}

@kapilratnani kapilratnani reopened this Nov 9, 2018
@kapilratnani
Copy link
Collaborator

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.

@AlexanderNobi
Copy link

Another example is

{
"Id": 100000000302052988.0
}

After "JSON Format" the value is 100000000302052990.

@radiothom
Copy link

yet another precision error case: lat long coordinates in plain text: [12.148681171238422,42.835353759876654]
After "JSON Format": [12.148681171238423, 42.835353759876657]

@bveldkamp
Copy link

bveldkamp commented Sep 24, 2021

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?

@user21760
Copy link

Potentially related to #78 (issue with parsing)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants