如何处理javascript中var类型有效数据极限值问题(超大数据)

最近在做web项目中遇到一个从来未遇到的问题,这个问题相信做为web开发的程序员来说遇到的可能性比较小!那么这个问题是怎么样出现的呢?我们有该如何解决这个问题呢?

由于javascript是弱类型语言,我们一般的基本数据定义都是用var来声明的,那对于大的数据处理javascript提供了number类型,查看资料也有说javascript目前采用的是IEEE754标准定义的64为浮点数值格式来表达数据的,也就是说应该能支持到64位!也就是可以支持16位的有效数字,像C语言一样,那么这个16位的有效数字最大是多少呢?答案是:9007199254740991,二进制为11111111111111111111111111111111111111111111111111111,53个1,如果超出这个数字就会被取偶,至于怎么取我们还是肯几组数据吧!

9007199254740991
11111111111111111111111111111111111111111111111111111
9007199254740992
100000000000000000000000000000000000000000000000000000
9007199254740993
100000000000000000000000000000000000000000000000000001
9007199254740994
100000000000000000000000000000000000000000000000000010
9007199254740995
100000000000000000000000000000000000000000000000000011
9007199254740996
100000000000000000000000000000000000000000000000000100
9007199254740997
100000000000000000000000000000000000000000000000000101
9007199254740998
100000000000000000000000000000000000000000000000000110
9007199254740999
100000000000000000000000000000000000000000000000000111
9007199254741000
100000000000000000000000000000000000000000000000001000

如果你直接var num = 9007199254740993 ;然后打印的话,那么显示数据就是9007199254740992

当var num = 9007199254740992;打印依然是var num = 9007199254740992;

当var num = 9007199254740995;打印是var num = 9007199254740996

当var num = 9007199254740996;打印依然是var num = 9007199254740996

当var num = 9007199254740997;打印是var num = 9007199254740996

当var num = 9007199254740998;打印依然是var num = 9007199254740998

当var num = 9007199254740999;打印是var num = 9007199254741000;

其中还是有规律的,我就不好研究了!

总之如果处理大数据还是用字符串或是自己新建一个类来处理。


如:<a href="#" οnclick="detail(${busi.timeKey })">详情</a>

那个${busi.timeKey }超过以上的极限值,可以改为:<a href="#" οnclick="detail('${busi.timeKey }')">详情</a>

仅仅是加上单引


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值