当数字非常大时,Javascript“toLocaleString()”函数将小数点归零[重复]
Posted
技术标签:
【中文标题】当数字非常大时,Javascript“toLocaleString()”函数将小数点归零[重复]【英文标题】:Javascript "toLocaleString()" function chnages decimals to zero when number is very large [duplicate] 【发布时间】:2021-01-01 15:43:09 【问题描述】:我正在开发一个反应应用程序,我需要使用 toLocaleString 函数格式化一些数字,我意识到当数字非常时数字的小数部分变为零
(10000.25).toLocaleString('en',maximumFractionDigits: 2, minimumFractionDigits: 2);
//Output: 10,000.25
(10000000000000000000.25).toLocaleString('en',maximumFractionDigits: 2, minimumFractionDigits: 2);
//Output: 10,000,000,000,000,000,000.00
为什么会这样?是错误还是我遗漏了什么?
【问题讨论】:
【参考方案1】:javascript 编译器无法处理非常大的数字。使用Number.MAX_SAFE_INTEGER
检查它可以处理的最后一个数字。如果没有计算出这些数字,请尝试从一开始就考虑使用字符串类型(也许如果您从 API 中获取),或者尝试使用 BigInt 类型。
对于浮点,它可以处理的精度为 1 个十进制数字的最大数字是 562949953421311,其他数字不同。这已被提及here。尝试在您的情况下使用 BigNumber 类。
【讨论】:
这只是一个整数,对于像OP这样的浮点数使用它会相当少。更多信息在这里 -> ***.com/questions/45929493/… 谢谢。我很快就添加了数字类型的答案。我已经编辑了。 正是我需要知道的。谢谢以上是关于当数字非常大时,Javascript“toLocaleString()”函数将小数点归零[重复]的主要内容,如果未能解决你的问题,请参考以下文章