2017-02-10 10 views
1

私は、ドル記号 "$"を先頭に追加するjavascriptカウンタを持っています。カウンタの登るときに読みやすくするためにカンマが必要です3,000,000まで。Javascriptカウンタにプレフィックスとカンマを追加する

カウンタはテンプレートモジュール(風力計数器)の一部です。私はここか私は、Javaコードにダイビングする必要がある場合は、これを達成できるかどう

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

わからない:ここではカウンターがオンに表示しているページからのコードはありますか?

+0

私は風の強いカウンターに慣れていませんが、可能でなければなりません。しかし、あなたが私たちのために十分な文脈を与えていない。あなたは[mcve]を作ることができますか? – dave

+0

chrome *](http://stackoverflow.com/questions/8906567/internationalizationnumber-formatting-num-tolocalestring-not-html)で機能しない[*国際化(数値書式 "num.toLocaleString()")働くための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. 必要な小数点以下の桁数を使用して数値をフォーマットします。

など。ISO通貨コードを使用して

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

すべての通貨が平等に扱われ、シンボルに対して何ら混乱はありませんを意味します。

マダガスカル(1 ariary = 5 iraimbilanja)とモーリタニア(1 ouguiya = 5 khoums)という小数点以下の国を使用している国は2つだけです。 toLocaleStringは、これらの通貨では特別なことはしません。そのため、マイナーユニットをご希望の場合は特別な処理が必要です。古い英ポンドやギリシア語のドラクマのような古い(または古代の)非小数の通貨をサポートしたいと思うかもしれませんが、特別な取り扱いも必要です。

関連する問題