013 クラスライブラリ(数値を扱うクラス) 009 解答例

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

public class CurrencyFormatExample {
    public static void main(String[] args) {
        // 与えられた浮動小数点数
        double amount = 1000.50;

        // 通貨フォーマットを作成
        NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance(Locale.getDefault());

        // 浮動小数点数を通貨フォーマットに変換
        String formattedAmount = currencyFormatter.format(amount);

        // 結果を表示
        System.out.println("通貨フォーマット: " + formattedAmount);
    }
}

このプログラムでは、NumberFormat.getCurrencyInstance(Locale.getDefault()) を使用してデフォルトのロケールに基づいた通貨フォーマットを取得し、その後、format() メソッドを使用して浮動小数点数を通貨フォーマットに変換しています。Locale.getDefault() はデフォルトのロケールを取得しますが、必要に応じて異なるロケールを指定することも可能です。

NumberFormatクラスの利用

NumberFormat クラスは、数値をフォーマットするためのクラスであり、通貨、パーセント、整数などの様々な形式で数値を表現するのに役立ちます。このクラスは java.text パッケージに属しています。

以下は NumberFormat クラスの主なメソッドと利用方法についての解説です。

1.getInstance(Locale) メソッド:

NumberFormat クラスのインスタンスを取得します。
ロケール(地域や言語設定)を指定することができ、指定しない場合はデフォルトのロケールが使用されます。

NumberFormat numberFormat = NumberFormat.getInstance(Locale.JAPAN);

2.format(double) メソッド:

指定された double 値を指定されたフォーマットに変換します。

double value = 1234.56;
String formattedValue = numberFormat.format(value);

3.parse(String) メソッド:

指定された文字列を数値に変換します。
ParseException がスローされる可能性があるため、適切な例外処理が必要です。

String stringValue = "1,234.56";
try {
    double parsedValue = numberFormat.parse(stringValue).doubleValue();
} catch (ParseException e) {
    e.printStackTrace();
}

4.setMaximumFractionDigits(int) および setMinimumFractionDigits(int) メソッド:

表示する小数点以下の桁数の最大および最小を設定します。

numberFormat.setMaximumFractionDigits(2);
numberFormat.setMinimumFractionDigits(0);

5.setCurrency(Currency) メソッド:

通貨を設定します。

Currency currency = Currency.getInstance("USD");
numberFormat.setCurrency(currency);

これらのメソッドを組み合わせて使用することで、様々な数値のフォーマットを行うことができます。例えば、通貨フォーマット、パーセントフォーマット、整数フォーマットなどがあります。NumberFormat クラスを使用することで、地域や文化に応じたフォーマットが簡単に実現できます。

「013 クラスライブラリ」問題集リスト