2017-02-10 58 views
1

我有我想要一个美元符号“$”添加到前面的JavaScript计数器,我想为了有逗号,以帮助可读性作为计数器攀升到3,000,000。添加前缀和逗号在JavaScript计数器

该计数器是模板模块(有风计数器)的一部分。下面是从网页代码中的计数器上显示:

<div class ="windy-counter" ##>[zt_counter_box iconSize="14" from="0" to="3000000" unit="+" unitPos="after" updown="up" speed="3000" countColor="#00aeef" contentColor="#747474" border="no" bdColor="#e0dede" column="3"]Operating Costs Saved[/zt_counter_box]</div> 

不知道如果我能做到这一点还是在这里,如果我需要在潜水的Java代码?

+0

我不熟悉有风柜台,但它应该是可能的。但是,您没有给我们足够的上下文来帮助您。你能制作一张[mcve]吗? – dave

+0

你可能想看看[* Internationalization(Number formatting“num.toLocaleString()”)not for chrome *](http://stackoverflow.com/questions/8906567/internationalizationnumber-formatting-num-tolocalestring-not-工作换C)。 – RobG

回答

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);

0

也许最简单的解决办法是,如果的toLocaleString可以结合toFixed,但不似乎很实用。

toLocaleString可用于根据不同的语言(术语“区域设置”是误称)和货币格式化数字。然而,虽然ECMA-402(在其上的toLocaleString的选项是基于)用来货币建立ISO 3217 codes,它允许实现改变他们表示,这样用户可能会得到一些标准的代码(如FJD斐济美元),非标准的字母和符号少数(如NZ $对于纽元);对于其他一些符号(如$为美元)(见EMCA-402 §6.3)。

所以用户仍然在想该货币符号代表在多个国家使用的货币,例如

  1. 对于美国,澳大利亚,新西兰或斐济美元(和其他许多人)是$?
  2. 是英镑,英国,黎巴嫩和埃及镑(和许多其他)?

如果要准确反映格式货币用户熟悉的应用程序:

  1. 前缀用正确的ISO数3217码
  2. 指定语言未定义
  3. 格式使用所需的小数位数的数字。

例如,

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对这些货币没有做任何特别的事情,所以如果你希望容纳他们的次要单位,你需要特殊的处理。您可能希望支持旧英镑或希腊德拉克马等较旧(或古代)非十进制货币,但您也需要特殊处理。