2017-02-10 60 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對這些貨幣沒有做任何特別的事情,所以如果你希望容納他們的次要單位,你需要特殊的處理。您可能希望支持舊英鎊或希臘德拉克馬等較舊(或古代)非十進制貨幣,但您也需要特殊處理。