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

Posted

技术标签:

【中文标题】如何在 JavaScript 中使用 toLocaleString() 和 tofixed(2)【英文标题】:How to use toLocaleString() and tofixed(2) in JavaScript 【发布时间】: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”

【问题讨论】:

【参考方案1】:

取自 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

【讨论】:

还有一件事。为方便起见,您可以执行以下操作:jsfiddle.net/st31wm96/2,因为总是手工编写可能会非常重复。 这与 toFixed(2) 不同。示例33.6.toLocaleString(undefined, minimumFractionDigits: 2, maximumFractionDigits: 2 ) 将等于“33.6”而不是“33.60” @Zalaboza,我刚刚在控制台中进行了测试,您的示例代码确实显示了“33.60”。接受的答案按预期工作。

以上是关于如何在 JavaScript 中使用 toLocaleString() 和 tofixed(2)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JavaScript 中使用 DCMTK 库

如何在 Javascript 中使用路由

如何在 jQuery 选择器中使用 JavaScript 变量?

在 Rails 中如何在使用 javascript_include_tag 之前检查 javascript 文件是不是存在

如何在 JavaScript 文件中使用 Django 变量?

如何在 iOS 的目标 C 中使用 javascript 代码?