Intl.NumberFormat 0或2个小数位

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Intl.NumberFormat 0或2个小数位相关的知识,希望对你有一定的参考价值。

我的格式化程序看起来像这样

const formatter = new Intl.NumberFormat('en-NZ', {
  style: 'currency',
  currency: 'NZD',
  minimumFractionDigits: 2,
});

如何调整此值以使整数具有0小数位数

formatter.format(4); // want output "$4"

分数总是显示两位数?

formatter.format(4.1); // want output "$4.10"
答案

你可以尝试这样的事情:

formatter.format(amount).replace(/D00$/, '');
另一答案

我将实现两种不同的格式,并使用模%验证它

4 % 1 == 0
4.1 % 1 == .1

希望这可以帮助 :)

const formatter = new Intl.NumberFormat('en-NZ', {
  style: 'currency',
  currency: 'NZD',
  minimumFractionDigits: 2,
});

const fraction = new Intl.NumberFormat('en-NZ', {
  style: 'currency',
  currency: 'NZD',
  minimumFractionDigits: 0,
});


let number = 4.1;
  if(4%1 == 0)
console.log(formatter.format(number));
  else
console.log(fraction.format(number));


number = 4;
  if(4%1 == 0)
console.log(formatter.format(number));
  else
console.log(fraction.format(number));

以上是关于Intl.NumberFormat 0或2个小数位的主要内容,如果未能解决你的问题,请参考以下文章

Intl.NumberFormat.formatToParts 不是函数

Intl.NumberFormat#format 最大整数值

Intl.NumberFormat 中的多个语言环境?

如何将 Intl.NumberFormat 与本机反应一起使用?

使用不带货币符号的 Intl.NumberFormat 进行货币格式化

为啥 Intl.NumberFormat 不适用于 Safari 和 Firefox 中的单位?