我有一个javascript计数器,我想添加一个美元符号" $"在前面,我希望有一个逗号来帮助提高可读性,因为计数器攀升至3,000,000。
计数器是模板模块(windy-counter)的一部分。以下是计数器显示在页面上的代码:
componentWillReceiveProps
不确定我是否可以在此处实现此目的,或者我是否需要深入研究Java代码?
答案 0 :(得分:2)
如果您尝试将javascript中的数字转换为已发布的格式化字符串,则可以使用toLocaleString
函数,然后在开头添加$
。
formattedNumber = "$" + num.toLocaleString();
完整代码:
var num = 3000000;
formattedNumber = "$" + num.toLocaleString();
console.log(formattedNumber);
// OR
var num = 3000000;
formattedNumber = num.toLocaleString('en-US', {style: 'currency', currency: 'USD'});
console.log(formattedNumber);

答案 1 :(得分:0)
也许最简单的解决方案是 toLocaleString 可以与 toFixed 结合使用,但这似乎不切实际。
toLocaleString 可用于根据不同语言(术语“区域设置”用词不当)和货币格式化数字。但是,虽然ECMA-402( toLocaleString 的选项基于此选项)使用已建立的ISO 3217 codes货币,但它允许实现改变其表示,以便用户可以获得某些标准代码(例如斐济元的FJD),少数的非标准字母和符号(例如新西兰元的NZ $),以及其他的符号(例如美元的$)(见EMCA-402 §6.3)。
因此,用户仍然想知道符号代表多个国家/地区使用的货币的货币,例如
如果您的应用程序要以用户熟悉的格式准确反映货币:
E.g。
var num = 3000000;
var currencies = ['USD','NZD','FJD','EUR','GBP','EGP','LBP','MRO','JPY']
console.log('toString variants (the first 3 are all dollars)\n');
currencies.forEach(function(c){
console.log(c + ': ' + num.toLocaleString(undefined, {style: 'currency', currency: c}));
});
console.log('Consistent with ISO 4217\n');
currencies.forEach(function(c) {
console.log(c + ': ' + c + num.toLocaleString(undefined,
{minimumFractionDigits: 2, maximumFractionDigits: 2}));
});
使用ISO货币代码意味着所有货币都得到平等对待,并且不会混淆符号系统。
只有两个国家不使用十进制货币:马达加斯加(1 ariary = 5 iraimbilanja)和毛里塔尼亚(1 ouguiya = 5 khoums)。 toLocaleString 对这些货币不做任何特殊处理,因此如果您希望容纳他们的次要单位,则需要特殊处理。您可能希望支持旧的(或古老的)非十进制货币,如旧英镑或希腊德拉克马,但您也需要特殊处理。