格式化带两位小数的欧洲格式数字
Formatting number in European format with two decimals
正在尝试将数字格式化为欧洲文化中的两位小数格式。所以逗号是小数分隔符和 space 千位分隔符。
例如 213245 的格式应为 213 245,00
我该怎么做?
213245.toFixed(2).toLocaleString();
给出 213245.00 但它应该是 213 245,00
然而
213245.toLocaleString()
给出 213 245
下面摆弄:
var out, input;
input = 213245;
// TEST 1
out = input.toFixed(2);
console.log(out); // 213245.00
out = out.toLocaleString();
console.log(out); // 213245.00
// TEST 2
out = input.toLocaleString();
console.log(out); // 213 245
当你使用Number.toFixed() you obtain a string (not a number any more). For that reason, subsequent calls to .toLocaleString()
launch the generic Object.toLocaleString() method that knows nothing about numbers, instead of the Number.toLocaleString()你想要的。
查看文档,我们可以编写如下内容:
> Number(213245).toLocaleString("es-ES", {minimumFractionDigits: 2});
"213.245,00"
console.log(Number(213245).toLocaleString("es-ES", {minimumFractionDigits: 2}));
这是一个相对的新增内容,因此请务必确认browser support, but it's been working in Firefox and Chrome-like browsers for a few years now. In particular, some runtimes like Node.js默认情况下不包含完整的 ICU 数据集。
正在尝试将数字格式化为欧洲文化中的两位小数格式。所以逗号是小数分隔符和 space 千位分隔符。
例如 213245 的格式应为 213 245,00
我该怎么做?
213245.toFixed(2).toLocaleString();
给出 213245.00 但它应该是 213 245,00
然而
213245.toLocaleString()
给出 213 245
下面摆弄:
var out, input;
input = 213245;
// TEST 1
out = input.toFixed(2);
console.log(out); // 213245.00
out = out.toLocaleString();
console.log(out); // 213245.00
// TEST 2
out = input.toLocaleString();
console.log(out); // 213 245
当你使用Number.toFixed() you obtain a string (not a number any more). For that reason, subsequent calls to .toLocaleString()
launch the generic Object.toLocaleString() method that knows nothing about numbers, instead of the Number.toLocaleString()你想要的。
查看文档,我们可以编写如下内容:
> Number(213245).toLocaleString("es-ES", {minimumFractionDigits: 2});
"213.245,00"
console.log(Number(213245).toLocaleString("es-ES", {minimumFractionDigits: 2}));
这是一个相对的新增内容,因此请务必确认browser support, but it's been working in Firefox and Chrome-like browsers for a few years now. In particular, some runtimes like Node.js默认情况下不包含完整的 ICU 数据集。