Closed YFengFly closed 5 years ago
整数最大安全值为: 9007199254740991 (2的52次方 减一)
// 打印Number最大安全值
console.log("整数最大安全值", Number.MAX_SAFE_INTEGER);
// 超过最大安全值会怎样?
// 最大安全值加1的结果
console.log("整数最大安全值加1:", Number.MAX_SAFE_INTEGER+1);
// 最大安全值加2的结果
console.log("整数最大安全值加2:", Number.MAX_SAFE_INTEGER+2);
// 最大安全值加3的结果
console.log("整数最大安全值加3:", Number.MAX_SAFE_INTEGER+3);
// 最大安全值加4的结果
console.log("整数最大安全值加4:", Number.MAX_SAFE_INTEGER+4);
// 最大安全值加5的结果
console.log("整数最大安全值加5:", Number.MAX_SAFE_INTEGER+5);
越界则会产生误差:
整数最大安全值为: 9007199254740991 (2的52次方 减一)
// 打印Number最大安全值 console.log("整数最大安全值", Number.MAX_SAFE_INTEGER); // 超过最大安全值会怎样? // 最大安全值加1的结果 console.log("整数最大安全值加1:", Number.MAX_SAFE_INTEGER+1); // 最大安全值加2的结果 console.log("整数最大安全值加2:", Number.MAX_SAFE_INTEGER+2); // 最大安全值加3的结果 console.log("整数最大安全值加3:", Number.MAX_SAFE_INTEGER+3); // 最大安全值加4的结果 console.log("整数最大安全值加4:", Number.MAX_SAFE_INTEGER+4); // 最大安全值加5的结果 console.log("整数最大安全值加5:", Number.MAX_SAFE_INTEGER+5);
越界则会产生误差:
抱歉,我描述的不太清楚。用js做计算会有这两个问题: 1.数值不能过大,这一点您上面说明了,对应MDN:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER 2.另一个问题是浮点计算,就比如我说道的 0.1 + 0.2,还有 0.3 / 0.1 等各种情况。 所以,文章应该特别说明一些限制: 1.只进行整数计算 2.计算数字不能太大
因为Chrome的Console用的是Javascript,然而遵循IEEE 754做进制转换,算小数的时候可能会中招.... 比如,0.1 + 0.2 ,0.1+0.7....... emmm...算不是太大的整数还是妥妥的,但如果你要计算12345678901234567这么大的数也会有意外惊喜....