Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職

NumberFormatクラス

数値を整形する – NumberFormatクラス
public static NumberFormat getInstance([Locale loc])
public static NumberFormat getCurrencyInstance([Locale loc])
public static NumberFormat getIntegerInstance([Locale loc])
public static NumberFormat getPercentInstance([Locale loc])
loc:ロケール

数値データを整形するには、NumberFormatクラス(java.textパッケージ)を利用します。NumberFormatクラスでは、(new演算子ではなく)以下のようなメソッドでインスタンスを生成します。

NumberFormatオブジェクト生成のためのメソッド
メソッド 概要
getInstance 汎用的な数値フォーマット
getCurrencyInstance 通貨フォーマット
getIntegerInstance 整数フォーマット
getPercentInstance パーセントフォーマット

以下では、それぞれのgetXxxxxInstanceメソッドで生成したNumberFormatオブジェクトを利用して、数値を整形してみましょう。

UtilNumber.java

package com.example.mynavi.util;

import java.text.NumberFormat;
import java.util.Locale;

public class UtilNumber {
  public static void main(String[] args) {
    double num = 1128.5645;
    // 通貨形式で整形
    NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.JAPAN);
    nf.setGroupingUsed(true);
    nf.setMaximumFractionDigits(3);
    nf.setMinimumFractionDigits(2);
    System.out.println(nf.format(num));	// 結果:¥1,128.564
    
    double num2 = 0.45678;
    // パーセント形式で整形
    NumberFormat nf2 = NumberFormat.getPercentInstance();
    nf2.setGroupingUsed(true);
    nf2.setMinimumIntegerDigits(3);
    nf2.setMaximumFractionDigits(2);
    System.out.println(nf2.format(num2));	// 結果:045.68%
  }
}

NumberFormatオブジェクトでは、以下のようなセッターメソッドを利用することで、フォーマットをカスタマイズすることもできます。

フォーマット設定のためのメソッド
メソッド 概要
void setCurrency(Currency cur) 通貨フォーマットで利用する通貨
void setGroupingUsed(boolean flag) 桁区切り文字(,)を利用するか
void setMaximumFractionDigits(int max) 小数部分の最大桁数
void setMaximumIntegerDigits(int max) 整数部分の最大桁数
void setMinimumFractionDigits(int min) 小数部分の最小桁数
void setMinimumIntegerDigits(int min) 整数部分の最小桁数
ユーティリティ
getPropertiesメソッド
Randomクラス
DateFormatクラス
NumberFormatクラス
Timerクラス

Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職