JSON 中 Long类型精度缺失的问题
作者:Bright Xu
问题描述:后端返回的JSON字符串{"id": 130872882849357824, "name": "张三", "age": 22}
,前端通过user.id
获取id
时,id
的值变成了130872882849357820
,也就是说id
的个位数精度缺失了。
问题原因:主要原因是前端将json字符串反序列化成对象时,将这个id
转成了Number
类型。JavaScript
的Number
类型是IEEE 754
的双精度浮点型,在这个规定中能安全的表示整数的范围在 − ( 2 53 − 1 ) -(2^{53}-1) −(253−1) 到 2 53 − 1 2^{53}-1 2