toLocaleString()未将数字格式化为欧洲格式

时间:2020-09-16 15:29:05

标签: javascript node.js typescript

我正在尝试将给定的数字格式化为欧洲格式。但是,我只得到美国/英国格式的结果。

这是我的代码:

static async formatCurrency(numberIn: number, currencyIndicator: string) {
        if(currencyIndicator=='EUR') {
            console.log(numberIn.toLocaleString('es-ES', { minimumFractionDigits: 2 , style: 'currency', currency: 'EUR'}));
            console.log(Number(numberIn).toLocaleString("de-DE", {minimumFractionDigits: 2}));
        }
}
await formatCurrency(12345678.00,"EUR");

这是我的输出:

€12,345,678.00

12,345,678.00

我期望的输出是:

€12.345.678,00

12.345.678,00

1 个答案:

答案 0 :(得分:0)

我尝试安装full-icu并将其导入我的班级。有了这段代码,我仍然没有得到想要的结果:

            formattedNumber = await new Intl.NumberFormat('nl-NL', { minimumFractionDigits: 2 , style: 'currency', currency: 'EUR'}).format(numberIn);
           
 console.log("formattedNumber is: " + formattedNumber);

这是我的输出结果:€12,345,678.00。而不是€12.345.678,00

这可能是更好的解决方案吗?

            formattedNumber = await formattedNumber.replace(/\./g, "_");
            formattedNumber = await formattedNumber.replace(/,/g, ".");
            formattedNumber = await formattedNumber.replace(/_/g, ",");
    ```
相关问题