如何在 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)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 jQuery 选择器中使用 JavaScript 变量?
在 Rails 中如何在使用 javascript_include_tag 之前检查 javascript 文件是不是存在