尝试将欧洲文化中的数字格式化为两位小数的格式。所以逗号是小数分隔符和空格千位分隔符。
在示例中,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
https://jsfiddle.net/rootnode/8p2vad8u/7/
最佳答案
当您使用 Number.toFixed() 时你得到一个 string (不再是一个数字)。因此,对 .toLocaleString()
的后续调用会启动通用 Object.toLocaleString()对数字一无所知的方法,而不是 Number.toLocaleString()你想要的。
查看文档,我们可以编写如下内容:
> Number(213245).toLocaleString("es-ES", {minimumFractionDigits: 2});
"213.245,00"
console.log(Number(213245).toLocaleString("es-ES", {minimumFractionDigits: 2}));
这是一个相对的新增功能,因此请务必验证 browser support ,但它已经在 Firefox 和类似 Chrome 的浏览器中运行了几年。特别是一些运行时,如 Node.js默认情况下不包括完整的 ICU 数据集。
https://stackoverflow.com/questions/30777552/