为了账号安全,请及时绑定邮箱和手机立即绑定

当我将它记录到控制台时,为什么 JavaScript 会四舍五入这个数字?

当我将它记录到控制台时,为什么 JavaScript 会四舍五入这个数字?

杨魅力 2022-12-29 16:34:07
为什么:console.log( 9999999999999999 ); //log 10000000000000000This article提到它但我实际上不明白为什么
查看完整描述

1 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

因为 javascript 像这样处理数字。你应该考虑到它不会失败。您可以在此处阅读相关信息。 http://speakingjs.com/es5/ch11.html

对于 54 位,最低有效位始终为 0,对于 55 位,两个最低有效位始终为 0,依此类推。这意味着对于 54 位,我们只能表示每隔两个数字,对于 55 位只能表示每四个数字,依此类推。例如:

Math.pow(2, 53) - 1 // OK 9007199254740991
Math.pow(2, 53) // OK 9007199254740992
Math.pow(2, 53) + 1 // 无法表示 9007199254740992
Math.pow(2, 53) + 2 // 好的 9007199254740994

最佳实践

如果您使用高达 53 位大小的整数,则没有问题。不幸的是,您会经常在编程(Twitter ID、数据库等)中遇到 64 位无符号整数。这些必须存储在 JavaScript 中的字符串中。如果你想用这样的整数进行算术运算,你需要特殊的库。有计划将更大的整数引入 JavaScript,但这需要一段时间。


查看完整回答
反对 回复 2022-12-29
  • 1 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号