【发布时间】:2015-10-13 09:12:44
【问题描述】:
如何在 JavaScript 中做到这一点?
var num = 2046430;
num.toLocaleString();
will give you "2,046,430";
我试过的是:
var num = 2046430;
num.toLocaleString().toFixed(2);
预期输出
“2,046,430.00”
【问题讨论】:
标签: javascript
如何在 JavaScript 中做到这一点?
var num = 2046430;
num.toLocaleString();
will give you "2,046,430";
我试过的是:
var num = 2046430;
num.toLocaleString().toFixed(2);
预期输出
“2,046,430.00”
【问题讨论】:
标签: javascript
取自 MDN:
语法
numObj.toLocaleString([locales [, options]])
toLocaleString 接受 2 个参数。第一个是语言环境,第二个是选项。至于选项,您正在寻找:
最小分数位数
要使用的最小小数位数。 可能的值是从 0 到 20;普通数字的默认值和 百分比格式为 0;货币格式的默认值是 ISO 4217 货币代码提供的次要单位位数 列表(如果列表未提供该信息,则为 2)。
https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString
为了能够在不设置语言环境的情况下设置选项,您可以将 undefined 作为第一个参数传递:
var num = 2046430;
num.toLocaleString(undefined, {minimumFractionDigits: 2}) // 2,046,430.00
但是,这也允许分数长于 2 位。所以我们需要寻找另一个选项,称为maximumFractionDigits。 (也在那个 MDN 页面上)
var num = 2046430.123;
num.toLocaleString(undefined, {
minimumFractionDigits: 2,
maximumFractionDigits: 2
}) // 2,046,430.12
【讨论】:
33.6.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }) 将等于“33.6”而不是“33.60”