JavaScript

【AngularJS】currencyフィルターで通貨表示をする方法

angularjs

AngularJSには色々と便利なフィルターが存在します。

JSONオブジェクトに変換してくれたり、大文字に変換してくれたりなど、JavaScriptらしいフットワークの軽さがとても便利ですよね。

中には通貨単位での表示をしてくれるものもあります。
例えば、$1,234とか¥1,000とかです。

ちょっとプライベートで確認する機会がありましたので、今回はAngularJSのcurrencyフィルターで通貨表示をする方法についてご紹介しますね。

ちなみに、公式のドキュメントはこちらです。
参考:AngularJS : Developer Guide : Filters

基本形の確認

AngularJSのcurrencyフィルターの基本形の例は以下となります。

{{1234 | currency : “¥” : 0}}

これで「¥1,234」と表示されます。

この基本形の見方についてですが、以下のような構造になっています。

{{ 数値 | currency : “通過記号” : 小数点第何位まで表示するか }}

改めてさきほどの例を見てみましょう。

つまり、

  • 「1234」という数字に対して、
  • currencyフィルターで、
  • 通貨記号として「¥」をつけて、
  • 小数点第0位まで表示してください

という意味になります。

そのため、「¥1.234」という表示になるという訳です。

オプションの有無による違い

せっかくですので、先ほどの基本形を例に、オプションの有無が表示にどのような影響を与えるのか確認してみましょう。

オプションの有無等で結果はそれぞれ以下のようになります。

{{1234 | currency}} => $1,234.00

通貨記号を指定しない場合は、デフォルトで「$」が付加されます。

{{1234 | currency : “¥”}} => ¥1,234.00

先ほど見たように、明示的に通貨記号を指定すると、その記号で表示されます。

{{1234 | currency : undefined : 0}} => $1,234

通貨記号に「undefined」を指定すると、デフォルトの「$」が付加されました。

{{1234 | currency : undefined : 3}} => $1,234.000

小数点第3位までを指定すると、このように表示されます。
小数点以下が0でも指定した桁数まで表示されるので、桁数を揃えるのに便利ですね。

{{1234 | currency : “USD$” : 0}} => USD$1,234

おまけとして、通貨記号にはこのような単位も付加できます。

終わりに

今回はAngularJSのcurrencyフィルターで通貨記号をつける方法についてご紹介しました。

基本形はこちらですので、目的に合わせて調整してみてください。

currencyフィルターの基本形

{{ 数値 | currency : “通過記号” : 小数点第何位まで表示するか }}

今回はここまでです。それでは。