【发布时间】:2020-12-27 15:10:44
【问题描述】:
例如:
// Current behaviour
1e+25.toString() // Becomes "1e+25"
// Want this instead
1e+25.toDecimalString() // Becomes "1000000000..."
【问题讨论】:
-
1e+25大于Number.MAX_SAFE_INTEGER,不能完全表示为Number。对于如此大的值,您应该使用BigInt。 -
@axiac 我不想表示为数字。仅将其转换为字符串 - 字符串没有限制。
-
从什么转换?从一个数字,不是吗?
1e+25是Number类型的值。这与1e+25 + 1和下一个十亿整数值相等(由于 JavaScript 存储数字的方式)。 Check it out on TIO。如果你不使用BigInt,你的方法从一开始就是无效的,你可能会在某个时候得到不正确和意想不到的结果。
标签: javascript bignum