博客园

super.hill

记录搬砖中遇到的坑,欢迎批评指导!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 

看示例: 2 ** 53  = 9007199254740992

 

 

 看到了吧,加1后,值不变,为啥呢,
  查了后了解到: JavaScript 所有数字都保存成 64 位浮点数,这给数值的表示带来了两大限制。
  一是数值的精度只能到 53 个二进制位(相当于 16 个十进制位),大于这个范围的整数,JavaScript 是无法精确表示,
  这使得 JavaScript 不适合进行科学和金融方面的精确计算。二是大于或等于2的1024次方的数值,JavaScript 无法表示,会返回Infinity

 

这个时候需要是bigInt 类型

9007199254740992n + 1n
// 转字符串
9007199254740993n + ''

 

posted on 2023-02-02 09:07  超岭  阅读(16)  评论(0编辑  收藏  举报
博客园