js接收数字时,发现最后几位数字变成了0,如图所示:
从Java后台传一个数值到前端的js中,Java中输出为712070446013219840, 但在js中输出便成了712070446013219800
最后一位竟然都变成了0。
根本原因:js的number类型有个最大值(安全值)。即2的53次方,为9007199254740992。如果超过这个值,那么js会出现不精确的问题。 原来是js数字最长为16位,712070446013219840是18位,所以最后两位自动变为了0。
解决方法也很简单,只要在Java后台传数值时,将其变为String类型的即可。