我的格式化程序看起来像这样
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 时,正确的做法是在构造函数中同时设置 maximumFractionDigits 和 minimumFractionDigits 选项,同时使用整数的模 % 验证输入值(根据 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/