javascript如何处理位数大于16位的整数

本文探讨了JavaScript处理大数字时的精度问题,特别是在数字位数超过16位后出现的数据解析错误。通过实例展示了直接使用数字类型与字符串类型的差异,提出了解决方案,即在处理大数字时将其声明为字符串形式。

问题原因

   今天上课给学生做一vue效果,需要获取到传入数字的长度,第一想法,把数字正常转化为字符串获取长度,初次测试(数字比较少)效果实现,代码可行

这个是效果图,根据传入的数字位数用于vue的v-for循环,晚上测试时,发现超过16为之后,后面数字无法正常解析,严重影响到后面数据展示效果

数字为:9998364573486574999999

效果展示为

原因分析

   一开始以为是vue的渲染问题,后来经过理论推翻这个想法,将数字9998364573486574999999,直接toSting输出发现得到的结果为

然后再百度搜索toSting的问题,得知:javascript无法处理超过16位的数字数据

测试展示

解决方法

目前最好的解决方法就是把数字声明成字符串的形式,或者后台直接返回字符串的形式

例如

    {type:0,id:9998364573486574999999}

换为

    {type:0,id:‘9998364573486574999999’}

    

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值