gpt4 book ai didi

javascript - 为什么 JavaScript base-36 转换似乎模棱两可

转载 作者:行者123 更新时间:2023-12-01 15:22:35 24 4
gpt4 key购买 nike

我目前正在编写一段使用 base 36 编码的 JavaScript。
我遇到了这个问题:

parseInt("welcomeback",36).toString(36)
似乎返回 "welcomebacg" .
我在 Chrome 开发人员的控制台和 Node.js 中对此进行了测试,结果相同。
这个结果有什么合乎逻辑的解释吗?

最佳答案

parseInt("welcomeback",36) 的结果大于 Number.MAX_SAFE_INTEGER (253-1),因此无法准确表示。一种可能的解决方法是使用 BigInt 执行基本转换。手动。

const str = "welcomeback";
const base = 36;
const res = [...str].reduce((acc,curr)=>
BigInt(parseInt(curr, base)) + BigInt(base) * acc, 0n);
console.log(res.toString());
console.log(res.toString(36));

关于javascript - 为什么 JavaScript base-36 转换似乎模棱两可,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63200494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com