Sometimes you need to use floating-point numbers in JSON, such as prices, coordinates, and so on. But the floating-point numbers in python are fairly inaccurate, such as the following code:
Copy the Code code as follows:
#!/usr/bin/env python
Import JSON as JSON
data = [0.333, 0.999, 0.1]
Print Json.dumps (data)
The output is as follows: Copy the Code code as follows:
$ python floatjson.py
[0.33300000000000002, 0.999, 0.10000000000000001]
Can you specify the output format of a floating-point number, such as two digits after the decimal point? There's an easy way, though, to compare dirty: Copy Code code like this:
#!/usr/bin/env python
Import JSON
Json.encoder.FLOAT_REPR = Lambda X:format (x, '. 3f ')
data = [0.333, 0.999, 0.1]
Print Json.dumps (data)
This results in the following: copy code code:
$ python floatjson.py
[0.333, 0.999, 0.100]
How to accurately output JSON floating-point numbers in Python