首页 > 代码库 > 关于数值的最大值
关于数值的最大值
数值都有个最大值,如果你想强行大过它, 比如这么干
const NM = Number.MAX_VALUE;console.log(NM+998,NM==NM+998);//trueconsole.log(NM+pow(2,980));//Infinity
发现是越不过去的,不可能大过MAX_VALUE,而且如果超出了最大处理范围,还会出现Infinity。
这个MAX_VALUE最大值是怎么计算得来呢? js遵循的是IEEE754双精度浮点数,要求出这个值,得知道尾数部分和指数部分。
指数部分是不可能超过1023。 如
for(let i=1;i<Number.POSITIVE_INFINITY;i*=2) console.log( (log(i)/LN2).toPrecision(4) );
输出最多到1023,超过POSITIVE_INFINITY就跳出循环。
知道了指数部分,接着再让尾数部分全部为1。所以
console.log( Array.from({length:52},(v,i)=>pow(2,~i)).reduce((a,b)=>a+b,1)*pow(2,1023)== Number.MAX_VALUE )//true
这就完事儿了~
这东西知道就行了,工作中也确实没怎么用到过。
关于数值的最大值
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。