Intl.NumberFormat 十进制样式无法处理超过 17 个字符的数字

问题描述 投票:0回答:1

我尝试使用十进制格式的 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 个字符的数字吗?

enter image description here

javascript format numbers
1个回答
0
投票

有什么方法可以处理具有十进制格式的 Intl.NumberFormat 数字长度超过 17 个字符?

根据 Mozilla...

MAX_SAFE_INTEGER

+/- 9,007,199,254,740,991  

刚刚超过 9 千万亿!

那么即使对于印度卢比来说……九万亿卢比对你来说还不够吗?

来吧,伙计,你太夸张了! :)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER

无论如何,下一个级别是BigInt...但是不要太兴奋,因为它们有很多限制,您可以在这里阅读...

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt

© www.soinside.com 2019 - 2024. All rights reserved.