java对象转json, 数字精确出现丢失详解编程语言

现象

 java中的大数字比如18/19位的整数(long),转为json,输出到页面后,就出现精度丢失,如果数字再大些就会出现科学计数法。


这两个问题都不是json工具包(比如Gson)的问题,而是由于js存储大数字丢失精度引起。


1、精度丢失例子:当js表达整数时,最多表达15位数字,如果超过15位就会出现精度丢失问题。

援引js文档:

精度

整数(不使用小数点或指数计数法)最多为 15 位。

最后几位都变为0,丢失精度

var x = 1234567890123456999; 
console.log(x); 
输出结果:1234567890123457000

2、

数字再大一些就会出现,科学计数法

var x = 123456789012345699999999; 
console.log(x); 
输出结果:1.234567890123457e+23

解决办法

后台属性由数字类型改为字符串,转为json,传到前台就不会丢失了。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/20303.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论