注目記事

【Javaコード入門】ユーティリティ_④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
  1. package com.example.mynavi.util;
  2.  
  3. import java.text.NumberFormat;
  4. import java.util.Locale;
  5.  
  6. public class UtilNumber {
  7.   public static void main(String[] args) {
  8.     var num = 1128.5645;
  9.     // 通貨形式で整形
  10.     var nf = NumberFormat.getCurrencyInstance(Locale.JAPAN);
  11.     nf.setGroupingUsed(true);
  12.     nf.setMaximumFractionDigits(3);
  13.     nf.setMinimumFractionDigits(2);
  14.     System.out.println(nf.format(num)); // 結果:¥1,128.564
  15.      
  16.     var num2 = 0.45678;
  17.     // パーセント形式で整形
  18.     var nf2 = NumberFormat.getPercentInstance();
  19.     nf2.setGroupingUsed(true);
  20.     nf2.setMinimumIntegerDigits(3);
  21.     nf2.setMaximumFractionDigits(2);
  22.     System.out.println(nf2.format(num2));   // 結果:045.68%
  23.   }
  24. }

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クラス
Optionalクラス

監修

山田祥寛(有限会社 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万部を超える。