问题
Why this ("Filter" in jqplay.org): {"key":633447818234478180}
returns this ("Result" in jqplay.org): {"key": 633447818234478200}
Original JSON doesn't matter.
Why is it changing 180 into 200? How can I overcome this? Is this a bug? A number too big?
回答1:
I believe this is because jq can only represent legal JSON data and the number you've given is outside the range that can be represented without loss of precision. See also
- What is JavaScript's highest integer value that a number can go to without losing precision?
If you need to work with larger numbers as strings in jq you may want to try this library:
- jq-bigint
A big integer library for working with possibly-signed arbitrarily long decimal strings. Written by Peter Koppstein (@pkoppstein) and released under the MIT license.
来源:https://stackoverflow.com/questions/47397088/is-jq-transform-modifying-numbers-how-can-i-get-past-it