在 JavaScript 中计算大数字,如超过 2^53-1 的数字时,会出现精度丢失的问题。这是因为 JavaScript 中使用的是 64 位双精度浮点数,最大精度只能到 2^53-1。ES10 引入了 BigInt 类型来解决这个问题。BigInt 可以表示任意大小的整数,没有精度限制。本文将介绍如何使用 ES10 中的 BigInt 来解决 JavaScript 中计算大数的问题。
如何创建 BigInt
在ES10中,我们可以通过在数字后面加上一个 n
来创建 BigInt。例如:
----- --------- - ------------------ ----------------------- -- -----------------
注意,一个 BigInt 数字必须以 n 结尾,否则它将被视为普通的 Number 类型。
也可以使用 BigInt() 函数来创建 BigInt。例如:
----- --------- - ------------------------- ----------------------- -- -----------------
如何进行 BigInt 的计算
既然 BigInt 可以表示任意大小的整数,那我们可以用它来进行常规的算术操作,例如加、减、乘、除等。
----- -- - ------------------ ----- -- - ------------------ -- -- -------------- - ---- -- ------------------ -- -- -------------- - ---- -- -- -- -- -------------- - ---- -- --------------------------- -- -- -------------- - ---- -- --
注意事项
进行 BigInt 运算时,最好将所有操作数都转换为 BigInt 类型。例如:
----- -- - ------------------ ----- -- - ------------------------- -------------- - ---- -- ------------------
不支持使用运算符
+
来进行 BigInt 和 Number 的运算。如果需要进行这种运算,我们可以使用 BigInt 对象的valueOf()
方法来将结果转换回 Number 类型。例如:----- -- - ------------------ ----- -- - -- -------------- - ---------------------- -- -----------------
总结
BigInt 是一个新增的 JavaScript 类型,可以表示任意大小的整数,没有精度限制。当我们需要进行双精度精度超出 2^53-1 的大数计算时,可以使用 BigInt 来解决问题。在使用时,需要注意将所有操作数都转换为 BigInt 类型,同时避免使用运算符 +
进行 BigInt 和 Number 的运算。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/65b71444add4f0e0fffad745