我试图使用Intl.NumberFormat对象来格式化我的用户输入。 在我的javascript项目中,我创建组件并尝试使用它,如下所示;
const simpleFormat = new Intl.NumberFormat('de-DE', {style: 'percent'});
simpleFormat.format(12345678)
它给我的结果 123.456.78%当我期待 123.456,78% 逗号和点。分隔符与相同区域设置的货币样式一起正常工作。但似乎并没有与“百分比”合作。模式。有没有人有这个问题的解决方案?
答案 0 :(得分:3)
首先,格式化为百分比 12345678 会产生一个字符串 1.234.567.800% 而非“123.456.78%”,这是因为,简单地说,十进制12345678乘以100得到百分比值(这样小数1等于100%)。
您将遇到的另一个问题是 percent 样式默认情况下不会使用任何小数,因此您需要使用maximumFractionDigits
选项,以便在需要时使用它们
尽管如此,如果您想要 23.456,78%,您需要:
const simpleFormat = new Intl.NumberFormat('de-DE', {
style: 'percent',
maximumFractionDigits: 2,
});
let perc = simpleFormat.format(1234.5678);
console.log(perc);