当数字非常大时,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()”函数将小数点归零[重复]的主要内容,如果未能解决你的问题,请参考以下文章

当数组非常大时,根据另一个数组的范围有效地分离数组的一部分

操作blob到ORACLE,当数量大时,非常慢,请问如何解决

JS数组攻略

P0505

如何在输出中不包含 NaN 的情况下计算一个非常大的数组?

Django,当单个模型变大时模型拆分?