数値を整形する – 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) {
- var num = 1128.5645;
- // 通貨形式で整形
- var nf = NumberFormat.getCurrencyInstance(Locale.JAPAN);
- nf.setGroupingUsed(true);
- nf.setMaximumFractionDigits(3);
- nf.setMinimumFractionDigits(2);
- System.out.println(nf.format(num)); // 結果:¥1,128.564
- var num2 = 0.45678;
- // パーセント形式で整形
- var 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) | 整数部分の最小桁数 |
監修
山田祥寛(有限会社 WINGSプロジェクト)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NEC にてシステム企画業務に携わるが、2003年 4 月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト(https://wings.msn.to/)」の代表でもある。主な著書に『改訂 3 版JavaScript 本格入門』(技術評論社)、「独習シリーズ(C#・Python・PHP・Ruby・JSP&サーブレットなど)」(翔泳社)、「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravel など)」(Amazon Kindle)など。売り上げの累計は100万部を超える。