尝试在欧洲文化中将数字格式化为两位小数格式。这样逗号就是十进制分隔符和空格千位分隔符。
例如 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
答案 0 :(得分:18)
当您使用Number.toFixed()时,您会获得字符串(不再是数字)。出于这个原因,后续调用.toLocaleString()
会启动通用Object.toLocaleString()方法,该方法对数字一无所知,而不是您想要的Number.toLocaleString()。
看一下文档,我们可以组成这样的东西(在Firefox中测试):
> Number(213245).toLocaleString("es-ES", {minimumFractionDigits: 2});
"213.245,00"
console.log(Number(213245).toLocaleString("es-ES", {minimumFractionDigits: 2}));
这是相对新增加的内容,因此请务必验证browser support。特别是,某些运行时(如Node.js)默认情况下不包含完整的ICU数据集。