JS中int类型数字超过最大值的问题

问题:在项目中遇到一个奇怪的问题,我们在后台获取到一个id是数字类型的,然后再进行页面操作时通过这个id去查其所绑定的数据时,一直查不到数据后台报错;

问题原因:后面经过自己的对id的比对之后发现我们获取到的id与传给后台的值竟然是不一样

解决办法:在获取到数字类型的id之后先将id转成字符串再传入后台,问题就解决了。

 data() {
    return {
      number: 59588178895489589,
    };
  },
  created() {
    console.log(this.number)
  },

 原因分析:我们可以看到上面我给的这个number赋值是:59588178895489589,而我们再浏览器打印出来的却是:59588178895489590;其实如果我们用了ESLINK是会有提示的。

 

因为根据ECMAScript标准的要求,JS能表示并进行精确算术运算的整数范围为:正负2的53次方,也即从最小的值-9007199254740992到最大的值9007199254740992之间的范围;虽然对于超过这个范围的整数,JavaScript依旧可以进行运算,但却不保证运算结果的精度。值得注意的是,对于整数的位运算(比如移位等操作),JavaScript仅支持32位整型数,也即从-2147483648到+2147483647之间的整数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值