BigInt 是 JavaScript 用于安全表示任意精度整数的原始类型,以 n 结尾(如 123n),支持算术与比较操作,但不可与 Number 混合运算,需显式转换。
JavaScript 的
BigInt
是一种内置原始类型,专门用来安全地表示和运算任意精度的整数——也就是比
类型能表示的最大安全整数(
)还要大的整数。
BigInt 用后缀
表示大整数
创建 BigInt 最直接的方式是在整数字面量末尾加一个字母
:
是一个 BigInt,而
是普通 number
精确表示该值,不会像
那样在 Number 中因精度丢失变成
(看似一样,但再加 1 就出问题)
不能用小数或指数形式:❌
、❌
;只能是整数加
BigInt 支持基本算术和比较操作
它可以做加(
)、减(
)、乘(
)、除(
)、取余(
)、幂(
)等运算,结果仍是 BigInt:
得到精确的 2⁶⁴(18446744073709551616n)
注意:
可以比较两个 BigInt,但
会报错(因为 BigInt 和 Number 不可
隐式转换
)
大小比较(
)允许与 Number 混用,如
返回
BigInt 不能和 Number 混合运算
这是关键限制:你不能直接把 BigInt 和普通数字相加、相乘等,否则会抛出
:
Eclipse导入Android或其他的JAVA项目的正确方法 WORD版
本文档主要讲述的是Eclipse导入Android或其他的JAVA项目的正确方法;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
下载
立即学习
“
Java免费学习笔记(深入)
”;
❌
→ 报错
✅ 正确做法是显式转换:
或
(但后者可能丢失精度)
⚠️ 转换要谨慎:
会四舍五入成近似值,不再精确
常见使用场景
BigInt 主要用在需要高精度整数计算的地方:
密码学运算(如 RSA 大素数模幂)
处理时间戳(比如纳秒级高精度计时,超过
范围)
金融系统中避免浮点误差的大额整数计数(如链上 token 数量)
科学计算或
大数据
ID(如 Twitter Snowflake ID,64 位整数)
基本上就这些。BigInt 不复杂但容易忽略类型隔离规则——记住加
、别混用、转换要小心,就能稳稳处理超大整数。
Number2⁵³ − 1nn123n1239007199254740992n900719925474099290071992547409921.5n1e5nn+-*/%**100n + 50n === 150n2n ** 64n=====、>100n > 99trueTypeError10n + 510n + BigInt(5)Number(10n) + 5Number(123456789012345678901234567890n)Date.now()n