js接收数字,最后几位数字变成了0

问题

js接收数字时,发现最后几位数字变成了0,如图所示:

从Java后台传一个数值到前端的js中,Java中输出为712070446013219840,
但在js中输出便成了712070446013219800

最后一位竟然都变成了0。

解决

根本原因:js的number类型有个最大值(安全值)。即2的53次方,为9007199254740992。如果超过这个值,那么js会出现不精确的问题。
原来是js数字最长为16位,712070446013219840是18位,所以最后两位自动变为了0。

解决方法也很简单,只要在Java后台传数值时,将其变为String类型的即可。

原文地址:https://www.cnblogs.com/ZerlinM/p/13712871.html