format_bank_number: function(number){ return (number.toString()).substr(0,4)+"********"+(number.toString()).substr(-4); }为什么最后的9004变成9010了?
8 回答
慕容森
TA贡献1853条经验 获得超18个赞
最大安全整数:Number.MAX_SAFE_INTEGER(es6) === Math.pow(2,53)
1、JS中只有一种类型数,即64位(1bit 的符号位,11bits 的指数部分 ,以及52bits 的小数部分)双精度浮点数,当整数数值过大时,就会发生精度丢失。
2、所谓安全整数即能够唯一确定的数字,即能够使用64位二进制数唯一确定的整数。考虑2^53,转换成对应表示方式后其小数部分总共包括53位,发生了精度丢失,所以在JS中无法区别2^53与2^53+1;
3、安全整数与JS是否能够正确进行运算关系密切,当运算数与运算结果都处于安全整数的范围内时,才能保证JS运算结果正确。
添加回答
举报
0/150
提交
取消