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 クラスを使用することで、地域や文化に応じたフォーマットが簡単に実現できます。