当BigInt过大时,直接调用BigInt.toString()会导致内存溢出或“RangeError:”错误。因此,可以使用BigInt.toJSNumber()方法将BigInt转换为JavaScript中支持的最大整数值(2 ^ 53-1),然后使用常规的toString()方法来获取字符串表示形式。以下是代码示例:
const bigInt = BigInt("900719925474099954n");
const MAX_SAFE_INTEGER = Math.pow(2, 53) - 1; // 最大支持整数
if(bigInt <= MAX_SAFE_INTEGER) {
console.log(bigInt.toString());
} else {
const bigIntStr = bigInt.toJSNumber().toString();
console.log(bigIntStr);
}
在上面的示例中,如果BigInt比最大Int值小,则直接将BigInt转换为字符串。如果它大于最大Int值,则将BigInt转换为最大整数值,然后将其转换为字符串。这样,我们可以避免使用超出安全范围的数字。