我尝试使用十进制格式的 Intl.NumberFormat 创建卢比金额的格式化程序。但当输入的数字超过17位时,显示的数字就变得混乱,与输入不符。
这是我的格式化程序代码:
export const convertWithDelimiter = (value: string): string => {
const amountValue = parseFloat(value)
const formatter = Intl.NumberFormat('id-ID', {
style: 'decimal',
minimumFractionDigits: 0,
maximumFractionDigits: 0
});
return value ? formatter.format(amountValue) : '';
};
有什么方法可以让十进制格式的 Intl.NumberFormat 可以处理长度超过 17 个字符的数字吗?
有什么方法可以处理具有十进制格式的 Intl.NumberFormat 数字长度超过 17 个字符?
根据 Mozilla...
MAX_SAFE_INTEGER
+/- 9,007,199,254,740,991
刚刚超过 9 千万亿!
那么即使对于印度卢比来说……九万亿卢比对你来说还不够吗?
来吧,伙计,你太夸张了! :)
无论如何,下一个级别是BigInt...但是不要太兴奋,因为它们有很多限制,您可以在这里阅读...
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt