关于大于16位的数字计算精度丢失的问题

今天遇到个傻傻的问题,找了大半天,一步一步排除,终于找到这个BUG来了。

前台传一个number类型的数据给我,

let num=Number(strnum)

但因为strnum超过16位,后边第17位数字自动往上加1,然后后边的数字都变成0了

 

 可以看到241变成300,以致于和第三方比对时,一直说比对不上。

所以我让前端传我数据时,所有数据都用string,我后端来处理具体的类型。

js的数据精度一定要注意啊

posted @ 2020-05-06 15:40  wuwo  阅读(685)  评论(0编辑  收藏  举报