javascript - Intl.NumberFormat 0 或两位小数

标签 javascript

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

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"

最佳答案

使用 Intl.NumberFormat 时,正确的做法是在构造函数中同时设置 maximumFractionDigitsminimumFractionDigits 选项,同时使用整数的模 % 验证输入值(根据 https://stackoverflow.com/a/49724586/1362535 这是一个正确的答案!)。接受的答案是某种字符串操作。

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

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

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

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

关于javascript - Intl.NumberFormat 0 或两位小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49724537/

相关文章:

javascript - 检查更改事件内的值 IE 7-8 与其他

javascript - 尝试在输入文件的 onChange 事件上显示图像

javascript - 是否有提供良好兼容性实现的 HTML5 sessionStorage 包装器?

javascript - 如何使用CSS在顶部导航栏上添加后退按钮?

javascript - Cordova Geolocation 返回 NAN 的纬度和经度

javascript - 以编程方式(或可选地)覆盖 Chrome 的新标签页

javascript - 无法理解 domEvent 的工作原理

javascript - Filepond 自定义放置区

javascript - 更改两个数组总是同时更改另一个数组

javascript - 如何将javascript应用于多个类?