抱歉是这个例子
--yushicong
local cjson = require "cjson.safe"
local _t_1 = [[{"a": 12345678901234 }]]
print(_t_1)
local _t_1_1 = cjson.decode(_t_1)
print(_t_1_1.a/10000000000)
local _t_2 = [[{"a": 123456789012345 }]]
print(_t_2)
local _t_2_1 = cjson.decode(_t_2)
print(_t_2_1.a/10000000000)
在 2017年10月23日星期一 UTC+8下午10:49:59,Zexuan Luo写道:
这个其实不是丢失了精度啦,而是 print 的时候显示的格式问题。实际上的值还是正确的,只是 print 的时候用科学计数法表示,且未能显示的位做了四舍五入而已。你可以试试print _a-1 和 _a-2 的值看看
在 2017年10月23日 下午5:17,
<yushic...@gmail.com>写道:
--yushicong
local cjson = require "cjson.safe"
local _a = 123456789012345
local _t = {
a = _a
}
print(_a)
local _t_1 = cjson.encode(_t)
print(_t_1)
local _t_1_1 = cjson.decode(_t_1)
local _t_2 = cjson.encode(_t_1_1)
print(cjson.encode(_t_2))
1.2345678901235e+14
{"a":1.2345678901234e+14}
"{\"a\":1.2345678901234e+14}"
--