Java NumberFormat/DecimalFormat: 数値フォーマット徹底解説
NumberFormatクラスとDecimalFormatクラスは、Javaで数字をフォーマットするための2つのクラスです。
NumberFormatクラスは、数字のフォーマットや解析を行うための抽象クラスです。getInstance()メソッドを呼び出すことで、デフォルトのNumberFormatオブジェクトを取得することができます。また、getCurrencyInstance()、getPercentInstance()などの静的メソッドを呼び出すことで、特定のタイプのNumberFormatオブジェクトを取得することもできます。その後、format()メソッドを呼び出して数字を文字列にフォーマットし、parse()メソッドを呼び出して文字列を数字に解析することができます。
DecimalFormatクラスはNumberFormatの具体的なサブクラスであり、10進数の数字をフォーマットおよび解析するために使用されます。DecimalFormatオブジェクトを作成し、フォーマットモードを設定してformat()メソッドを呼び出すことで数字を文字列にフォーマットし、parse()メソッドを呼び出すことで文字列を数字に解析することができます。
以下は、NumberFormatクラスとDecimalFormatクラスを使用して数字をフォーマットする方法を示すサンプルコードです。
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class Main {
public static void main(String[] args) {
// 使用NumberFormat类格式化数字
NumberFormat numberFormat = NumberFormat.getInstance();
String formattedNumber = numberFormat.format(12345.67);
System.out.println("Formatted number: " + formattedNumber);
// 使用DecimalFormat类格式化数字
DecimalFormat decimalFormat = new DecimalFormat("#,###.00");
String formattedDecimal = decimalFormat.format(12345.67);
System.out.println("Formatted decimal: " + formattedDecimal);
// 使用DecimalFormat类解析字符串
try {
Number parsedNumber = decimalFormat.parse("12,345.67");
System.out.println("Parsed number: " + parsedNumber);
} catch (Exception e) {
System.out.println("Error parsing number");
}
}
}
上記の例では、最初にNumberFormatクラスとDecimalFormatクラスを使用して数字と10進数をそれぞれフォーマットし、結果を表示しました。そして、DecimalFormatクラスを使用してフォーマットされた文字列を解析し、その結果を表示しました。