如何在JavaScript中使用toLocaleString()和tofixed(2)
How to use toLocaleString() and tofixed(2) in JavaScript
如何在JavaScript中做到这一点?
var num = 2046430;
num.toLocaleString();
will give you "2,046,430";
我试过的是:
var num = 2046430;
num.toLocaleString().toFixed(2);
期望输出
" 2046430 "
摘自MDN:
语法
numObj.toLocaleString([locales [, options]])
toLocaleString
接受2个参数。第一个是区域设置,第二个是选项。至于选项,您要查找的是:
https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleStringminimumFractionDigits
要使用的最小分数位数。取值范围为0 ~ 20;默认为普通数字和%格式化为0;默认的货币格式是由ISO 4217货币代码提供的小单位位数列表(如果列表不提供该信息则为2)。
为了能够在不设置语言环境的情况下设置选项,可以将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
我来这里是因为我想在结果中显示货币符号(R$)并在小数点后显示两位数字。
最初,我尝试以下代码:
`Amount ${(gas * litros).toFixed(2)
.toLocaleString('pt-BR', {style: 'currency', currency: 'BRL'})}`
期望输出:Total a pagar R$ 20.95
输出:Total a pagar 20.95
因此,根据上面的答案,我尝试不使用toFixed()
:
`Total a pagar ${(gas * litros)
.toLocaleString('pt-BR', {style: 'currency', currency: 'BRL', minimumFractionDigits: 2})}`
输出:总pagar R $ 15日80
@Sebastian Nette接受的答案是,由于某种原因不适合我处理像"1,230.05"
这样的数字,它是一个带逗号的字符串。
我最终选择了以下内容:
var num = "1,230.05";
parseFloat(num.replace(",", "")).toFixed(2);
在解析为浮点数并运行toFixed()之前,它只是手动去除逗号。
相关文章:
- toFixed and replace dons'这似乎奏效了
- 在Javascript中,对于货币来说,是toFixed()足够精确
- toFixed javascript函数给出奇怪的结果
- jQuery - 动态表计算在添加 .toFixed(1) 时中断
- 什么是JS的确切等价物:PHP中的something.toFixed()
- 对负指数调用的.toFixed()返回一个数字,而不是字符串
- 正在寻求将.toFixed添加到jquery的帮助
- Performance: toFixed() vs. Math.floor(x * 10000)
- 使用 toFixed 对十进制数字进行舍入
- Decimal javascript-toFixed
- Wy js 方法 toFixed() 返回 NaN
- 如何防止 toFixed 四舍五入十进制数字
- toFixed(2) 对 “x.525” 的舍入不一致
- KnockoutJS Object doesn't support 'toFixed'
- JavaScript 中的 toFixed() 和 Java 中的 DecimalFormat 之间的冲突
- JavaScript - 在哪些操作之后需要 toFixed() 以及应该传递什么参数
- Javascript toFixed equivalent in java
- 为什么 Chrome、Safari 和 Firefox 中的 getTimezoneOffset() 和 toLocal
- 实现 toFixed() 的最可靠方法是什么
- Javascript round()、toFixed() 和 toPrecision() 是不正确的