在Javascript计数器中添加前缀和逗号

时间:2017-02-10 21:26:20

标签: javascript

我有一个javascript计数器,我想添加一个美元符号" $"在前面,我希望有一个逗号来帮助提高可读性,因为计数器攀升至3,000,000。

计数器是模板模块(windy-counter)的一部分。以下是计数器显示在页面上的代码:

componentWillReceiveProps

不确定我是否可以在此处实现此目的,或者我是否需要深入研究Java代码?

2 个答案:

答案 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)。

因此,用户仍然想知道符号代表多个国家/地区使用的货币的货币,例如

  1. 美元,澳大利亚元,新西兰元或斐济元(以及其他许多元)是$?
  2. 是英镑,黎巴嫩或埃及镑(和许多其他人)的英镑?
  3. 如果您的应用程序要以用户熟悉的格式准确反映货币:

    1. 使用正确的ISO 3217代码前缀数字
    2. 将语言指定为 undefined
    3. 使用所需的小数位数格式化数字。
    4. 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 对这些货币不做任何特殊处理,因此如果您希望容纳他们的次要单位,则需要特殊处理。您可能希望支持旧的(或古老的)非十进制货币,如旧英镑或希腊德拉克马,但您也需要特殊处理。