JavaScript接收的数字溢出导致最后一位或几位为0。
先说解决方法,取值的时候加双引号,将int转为String。
<script type="text/javascript">
function checkOpinion(id) {
uscc = ${param.uscc};
}
</script>
如上所示,我想要获取url中的参数:uscc。但是,uscc的值为:140860898256015344,实际获得的值为140860898256015340,最后一位错误。
根本原因:js的number类型有个最大值(安全值)。即2的53次方,为9007199254740992(16位)。如果超过这个值,那么js会出现不精确的问题。
解决方式:
- 使用的数字不要超过16位。
- 转为String,例如,使用双引号将int转为String。
<script type="text/javascript">
function checkOpinion(id) {
uscc = "${param.uscc}";
}
</script>