Intl.NumberFormat 0或2个小数位

问题描述 投票:7回答: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"
javascript
2个回答
4
投票

你可以尝试这样的事情:

formatter.format(amount).replace(/\D00$/, '');

1
投票

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

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));
© www.soinside.com 2019 - 2024. All rights reserved.