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