Javascript 将Intl.NumberFormat与';de';地区和';百分比';风格

Javascript 将Intl.NumberFormat与';de';地区和';百分比';风格,javascript,firefox,localization,number-formatting,Javascript,Firefox,Localization,Number Formatting,我尝试使用Intl.NumberFormat对象格式化用户输入。 在我的javascript项目中,我创建了一个组件,并尝试如下使用它 const simpleFormat = new Intl.NumberFormat('de-DE', {style: 'percent'}); simpleFormat.format(12345678) 它给我的结果是123.456.78%当我期望123.456,78% 逗号和点。分隔符可以与相同区域设置的货币样式配合使用。但它似乎无法使用“百分比”模式。

我尝试使用Intl.NumberFormat对象格式化用户输入。 在我的javascript项目中,我创建了一个组件,并尝试如下使用它

const simpleFormat = new Intl.NumberFormat('de-DE', {style: 'percent'});

simpleFormat.format(12345678)
它给我的结果是123.456.78%当我期望123.456,78%
逗号和点。分隔符可以与相同区域设置的货币样式配合使用。但它似乎无法使用“百分比”模式。有人能解决这个问题吗?

首先,将12345678格式化为百分比12345678会产生一个1.234.567.800%字符串,而不是“123.456.78%”,这是因为,简单地说,小数点12345678乘以100得到百分比值(这样小数点1等于100%)

您将遇到的另一个问题是百分比样式在默认情况下不会使用任何小数,因此您需要使用
maximumFractionDigits
选项,以便在需要时使用它们

有了这些,如果你想23.456,78%,你需要:

const simpleFormat=new Intl.NumberFormat('de-de'{
风格:'百分比',
最大分数位数:2,
});
设perc=simpleFormat.format(1234.5678);

控制台日志(perc)首先,格式化为百分比12345678会产生一个1.234.567.800%字符串,而不是“123.456.78%”,这是因为,简单地说,小数点12345678乘以100得到百分比值(这样小数点1等于100%)

您将遇到的另一个问题是百分比样式在默认情况下不会使用任何小数,因此您需要使用
maximumFractionDigits
选项,以便在需要时使用它们

有了这些,如果你想23.456,78%,你需要:

const simpleFormat=new Intl.NumberFormat('de-de'{
风格:'百分比',
最大分数位数:2,
});
设perc=simpleFormat.format(1234.5678);

控制台日志(perc)是。现在明白了。谢谢你,是的。现在明白了。谢谢@rgthree