如何在javascript中使用toLocaleString()和tofixed(2)

Que*_*ser 51 javascript

我怎么能在JavaScript中执行此操作?

var num = 2046430; 
num.toLocaleString();

will give you "2,046,430";
Run Code Online (Sandbox Code Playgroud)

我试过的是

var num = 2046430; 
num.toLocaleString().toFixed(2);
Run Code Online (Sandbox Code Playgroud)

预期产出

"2,046,430.00";
Run Code Online (Sandbox Code Playgroud)

Seb*_*tte 122

摘自MDN:

句法

numObj.toLocaleString([locales [, options]])

toLocaleString需要2个参数.第一个是区域设置,第二个是选项.至于选项,您正在寻找:

minimumFractionDigits

要使用的最小小数位数.可能的值为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
Run Code Online (Sandbox Code Playgroud)

然而,这也允许分数长于2位.所以我们需要寻找另外一个叫做的选项maximumFractionDigits.(也在MDN页面上)

var num = 2046430.123;
num.toLocaleString(undefined, {
  minimumFractionDigits: 2,
  maximumFractionDigits: 2
}) // 2,046,430.12
Run Code Online (Sandbox Code Playgroud)

  • 还有一件事.你可以出于方便的原因做这样的事情:http://jsfiddle.net/st31wm96/2/因为总是手写这个可能非常重复. (6认同)
  • @Zalaboza,我刚刚在控制台中进行了测试,您的示例代码确实显示“33.60”。接受的答案按预期工作。 (3认同)