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) | 整数部分の最小桁数 |






