Number.prototype.toString()对于大号损坏

时间:2018-07-05 10:49:01

标签: javascript

我想将整数转换为具有特定底数的数字。在这种情况下为36。

所以as documentation states我愿意myNumber.toString(36)

结果如下:

console.log((12345678901234566).toString(36));
console.log((12345678901234567).toString(36));
console.log((12345678901234568).toString(36));
console.log((12345678901234569).toString(36));
console.log((12345678901234570).toString(36));
console.log((12345678901234571).toString(36));

您会看到有一些问题,因为输出不是唯一的。

根据我发现的Number.MAX_SAFE_INTEGER = 9007199254740991,我的数字超过了该值,所以我相信这就是为什么要区别对待的原因

可惜的是,文档中没有任何地方指出存在某些界限。也许这是常识,我不知道。

有什么想法可以解决更大的问题?

我可以看到here的实现不正确(例如在我的示例中)并且here的实现正确,但是我不知道其背后的逻辑。

0 个答案:

没有答案