HOME > 数値をフォーマットする

数値をフォーマットする

int型やdouble型などの数値をカンマ区切り形式で表示したり、頭ゼロ埋めで表示したい時にjavaには便利なクラスがあります。

数値フォーマット

そのクラスは以下の2つがあります。

 ・【java.text.NumberFormat】 表示形式が既定のフォーマットでOKな場合
 ・【java.text.DecimalFormat】 独自にフォーマット形式を作成したい場合

既定クラスを使用したサンプルコード

カンマ区切り形式、通貨形式、パーセント表示形式はよく使われるために既にフォーマット形式が定義されているので簡単にフォーマット変換が行えます。

 カンマ区切り形式、通貨形式、パーセント表示形式フォーマットサンプル

import java.text.NumberFormat;

public class NumberFormatSample {

    public static void main(String args[]) {

        //NumberFormatインスタンスを生成
        NumberFormat nfNum = NumberFormat.getNumberInstance();    //カンマ区切り形式
        NumberFormat nfCur = NumberFormat.getCurrencyInstance();  //通貨形式
        NumberFormat nfPer = NumberFormat.getPercentInstance();   //パーセント形式

        //指定した値をフォーマットして表示する
        System.out.println(nfNum.format(12345.6789));
        System.out.println(nfCur.format(12345.6789));
        System.out.println(nfPer.format(0.9876));

    }

}

実行結果

 コマンドプロンプト

C:\>java NumberFormatSample
12,345.679
¥12,346
99%

【java.text.NumberFormatクラスの主要メソッド】
戻値型 メソッド 静的 説明
Stringformat(long a)引数aをフォーマット変換する
Stringformat(double a)引数aをフォーマット変換する
NumberFormatgetNumberInstance()カンマ区切形式フォーマット
NumberFormatgetCurrencyInstance()通貨形式フォーマット
NumberFormatgetPercentInstance()パーセント形式フォーマット
NumberFormatgetInstance()デフォルト形式
(getNumberInstanceと同じ)

パターン指定サンプルコード

独自にフォーマットパターンを指定したい場合には、java.text.DecimalFormatクラスを使用します。

 独自指定形式フォーマットサンプル

import java.text.DecimalFormat;

public class DecimalFormatSample {

    public static void main(String args[]) {

        //DecimalFormatインスタンスを生成
        DecimalFormat df1 = new DecimalFormat("#,###.##");
        DecimalFormat df2 = new DecimalFormat("00,000.00");
        DecimalFormat df3 = new DecimalFormat("##0.00%");

        //指定した値をフォーマットして表示する
        System.out.println(df1.format(123456789.5678));
        System.out.println(df2.format(1234.5));
        System.out.println(df3.format(0.56789));

    }

}

実行結果

 コマンドプロンプト

C:\>java DecimalFormatSample
123,456,789.57
01,234.50
56.79%

【数値フォーマットパターン文字】
文字 メモ
0数値1桁を表す。その桁に数値が無い場合は"0"を表示する
#数値1桁を表す。その桁に数値が無い場合はブランクとなる
.小数点を表す。
,カンマ区切りを表す。
-マイナスを表す。
%数値を100倍してパーセント表示にする。
【java.text.NumberFormatクラスの主要メソッド】
戻値型 メソッド 静的 説明
Stringformat(long a)aをフォーマット変換する
Stringformat(double a)aをフォーマット変換する
StringtoPattern()フォーマットパターンを返す

関連項目

数値・演算カテゴリ