js 遇到较大整数转化为字符串时如何不用科学技术法且能保持精度?

发布于 2022-09-12 03:13:07 字数 385 浏览 16 评论 0

刚在做题的时候,其中一个步骤的需求是把Number类型的转化成String类型。

但是测试的时候有一个用例中的数特别大,转化的为字符串的时候发现了会自动转化为科学技术法表示,在找到解决科学技术法的问题之后。

却发现了如下的精度缺失(个位的1丢失了),请问如何在不用其他库的情况下,弥补这种缺失?

let a = 1000000000000000000000000000001  
​  
console.log(a.toLocaleString('fullwide', { useGrouping: false }));//1000000000000000000000000000000

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

随遇而安 2022-09-19 03:13:07

Number 安全递增的最大可能整数也就是 Number.MAX_SAFE_INTEGER 这个值目前是 9007199254740991

你这个这么大,上 BigInt 吧。

BigInt('1000000000000000000000000000001').toLocaleString('fullwide', { useGrouping: false });

"1000000000000000000000000000001"

P.S. 低版本浏览器你还是得引 polyfill。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文