diff --git a/src/cjson/lua_cjson.c b/src/cjson/lua_cjson.c index 3119ffc2d7..0acdfab2e3 100644 --- a/src/cjson/lua_cjson.c +++ b/src/cjson/lua_cjson.c @@ -82,7 +82,7 @@ #define DEFAULT_ENCODE_INVALID_NUMBERS 0 #define DEFAULT_DECODE_INVALID_NUMBERS 1 #define DEFAULT_ENCODE_KEEP_BUFFER 1 -#define DEFAULT_ENCODE_NUMBER_PRECISION 14 +#define DEFAULT_ENCODE_NUMBER_PRECISION 16 #define DEFAULT_ENCODE_EMPTY_TABLE_AS_OBJECT 0 #define DEFAULT_DECODE_ARRAY_WITH_ARRAY_MT 0 #define DEFAULT_ENCODE_ESCAPE_FORWARD_SLASH 1 diff --git a/test/functional/lua/json_spec.lua b/test/functional/lua/json_spec.lua index e4a1df1d4c..be13b4e2e4 100644 --- a/test/functional/lua/json_spec.lua +++ b/test/functional/lua/json_spec.lua @@ -77,6 +77,7 @@ describe('vim.json.decode()', function() eq(-100000, exec_lua([[return vim.json.decode(' -100000 ')]])) eq(0, exec_lua([[return vim.json.decode('0')]])) eq(0, exec_lua([[return vim.json.decode('-0')]])) + eq(3053700806959403, exec_lua([[return vim.json.decode('3053700806959403')]])) end) it('parses floating-point numbers', function() @@ -208,6 +209,7 @@ describe('vim.json.encode()', function() end) it('dumps floats', function() + eq('3053700806959403', exec_lua([[return vim.json.encode(3053700806959403)]])) eq('10.5', exec_lua([[return vim.json.encode(10.5)]])) eq('-10.5', exec_lua([[return vim.json.encode(-10.5)]])) eq('-1e-05', exec_lua([[return vim.json.encode(-1e-5)]]))