Angularで数値データに「桁区切り文字」を付与するには?(number)Angular TIPS

Angularで数値を桁区切り文字列に整形するための、numberパイプの基本的な使い方を説明する。整数と小数点以下の桁数を指定して整形することも可能。

» 2017年04月14日 05時00分 公開
[山田祥寛]
「Angular TIPS」のインデックス

連載目次

現在では、Web標準技術を利用したアプリ開発が広く普及し、そのためのフレームワークも多数存在しています。その中でも主流のフレームワークの1つである「Angular」を活用し、そのための知識を備えることには大きな意味があります。本連載は、Angularユーザーに向けて、その使いこなしTIPSを紹介するものです。なお、本連載は「Build Insider」で公開していた連載「Angular Tips」を同サイトおよび筆者の了解を得たうえで、本フォーラムに移行したものです。記事はBuild Insiderで公開した状態のまま移行しているため、用語統一などの基準が@ITの通常の記事とは異なる場合があります。


【対応バージョン】

 Angular 2/4対応。v2時点で執筆し、v4時点で内容を確認・検証しました。


 numberパイプを利用することで、指定された数値を桁区切りのカンマで整形したものを出力できます。また、小数点以下を指定の桁数で丸めることも可能です。

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  template: `
    <ol>
      <li>元の値:{{value}}</li>
      <li>number(デフォルト):{{value | number}}</li>
      <li>number(桁数指定):{{value | number : '5.1-2'}}</li>
    </ol>
  `,
})
export class AppComponent {
  value = 1234.5678;
}

リスト1 与えられた数値をnumberパイプで整形するためのコード(app.component.ts)

1. 元の値:1234.5678
2. number(デフォルト):1,234.568
3. number(桁数指定):01,234.57


リスト2 出力結果:整形された数値

 numberパイプの構文は、以下の通りです。

[構文]numberパイプ

value | number [: info]

  • value: 任意の数値
  • info: 桁数情報(詳細は以下)

 リスト2の2は、引数infoを省略したnumberパイプの標準の挙動で整形をした結果です。小数点以下3桁で数値を丸めたうえで、桁区切り文字を付与しています。

 リスト2の3は、引数infoを指定した例です。引数infoは「minInt.minFrac-maxFrac」形式の文字列で、桁数情報を表します。それぞれの部位の意味は、以下の通りです。

部位 概要 デフォルト値
minInt 最小桁数(整数部) 1
minFrac 最小桁数(小数部) 0
maxFrac 最大桁数(小数部) 3
引数infoの構成

 2では「5.1-2」としているので、整数部は5桁以上、小数部は1〜2桁となるように整形します。この場合は、元の値の整数部は4桁なので、まず、整数部が5桁になるよう、0で補っています。小数部は4桁あるので、2桁となるよう、丸めます。もしも小数を丸め、整数にしたい場合には「5.0-0」のように指定してください。

[Note]ロケールによって結果は変化する

 numberパイプは、ロケール(地域情報)によって結果が変化するパイプです。ロケールの設定方法、また、ロケールを変更したときの結果については、後日別稿「TIPS:数値データを通貨記号付きの値に整形するには?(currency)」で解説の予定です。


処理対象:PIPE(パイプ) カテゴリ:基本
API:DecimalPipe(number) カテゴリ:@angular > common > PIPE(パイプ)


「Angular TIPS」のインデックス

Angular TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。