我说的是JSON转换,如:
>>> a = {'asas': 1/7.0}
>>> b = json.dumps(a)
>>> c = json.loads(b)
>>> c
{u'asas': 0.14285714285714285}
>>> c['asas'] == 1.0/7
True
JSON编码是否保证不会舍入数字?
在我的How to store a floating point number as text without losing precision?中,Mark Dickinson说repr
不会导致精确度下降。 json.dumps
使用repr
吗?
答案 0 :(得分:6)
在json
文档中没有提到repr
,但它是当前浮点到字符串强制的实现:
FLOAT_REPR = repr
(Lib/json/encoder.py
, line 31)
如果您需要严格保证,可以建立自己的JSONEncoder
。