@@ -380,6 +380,31 @@ def test_frame_from_json_nones(self):
380
380
unser = read_json (df .to_json (), dtype = False )
381
381
self .assertTrue (np .isnan (unser [2 ][0 ]))
382
382
383
+ def test_frame_to_json_float_precision (self ):
384
+ df = pd .DataFrame ([dict (a_float = 0.95 )])
385
+ encoded = df .to_json (double_precision = 1 )
386
+ self .assertEqual (encoded , '{"a_float":{"0":1.0}}' )
387
+
388
+ df = pd .DataFrame ([dict (a_float = 1.95 )])
389
+ encoded = df .to_json (double_precision = 1 )
390
+ self .assertEqual (encoded , '{"a_float":{"0":2.0}}' )
391
+
392
+ df = pd .DataFrame ([dict (a_float = - 1.95 )])
393
+ encoded = df .to_json (double_precision = 1 )
394
+ self .assertEqual (encoded , '{"a_float":{"0":-2.0}}' )
395
+
396
+ df = pd .DataFrame ([dict (a_float = 0.995 )])
397
+ encoded = df .to_json (double_precision = 2 )
398
+ self .assertEqual (encoded , '{"a_float":{"0":1.0}}' )
399
+
400
+ df = pd .DataFrame ([dict (a_float = 0.9995 )])
401
+ encoded = df .to_json (double_precision = 3 )
402
+ self .assertEqual (encoded , '{"a_float":{"0":1.0}}' )
403
+
404
+ df = pd .DataFrame ([dict (a_float = 0.99999999999999944 )])
405
+ encoded = df .to_json (double_precision = 15 )
406
+ self .assertEqual (encoded , '{"a_float":{"0":1.0}}' )
407
+
383
408
def test_frame_to_json_except (self ):
384
409
df = DataFrame ([1 , 2 , 3 ])
385
410
self .assertRaises (ValueError , df .to_json , orient = "garbage" )
0 commit comments