Skip to content

Format JSON changes numeric values #39

@ertasso

Description

@ertasso

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
}

Activity

kapilratnani

kapilratnani commented on Oct 14, 2018

@kapilratnani
Collaborator

Thanks for reporting. Check release 1.32 in releases section.

GabrieleDiCorato

GabrieleDiCorato commented on Oct 15, 2018

@GabrieleDiCorato

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 commented on Nov 18, 2018

@kapilratnani
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

AlexanderNobi commented on Jan 29, 2020

@AlexanderNobi

Another example is

{
"Id": 100000000302052988.0
}

After "JSON Format" the value is 100000000302052990.

radiothom

radiothom commented on Jul 28, 2020

@radiothom

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

bveldkamp

bveldkamp commented on Sep 24, 2021

@bveldkamp

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

user21760 commented on Nov 10, 2021

@user21760

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Development

    No branches or pull requests

      Participants

      @kapilratnani@bveldkamp@ertasso@SinghRajenM@GabrieleDiCorato

      Issue actions

        Format JSON changes numeric values · Issue #39 · NPP-JSONViewer/JSON-Viewer