在Java中,NumberFormat和DecimalFormat是兩個用于格式化數字的類。
NumberFormat是一個抽象基類,可以用于任何數字類型的格式化。要使用NumberFormat,可以按照以下步驟進行:
NumberFormat.getInstance()
方法獲取NumberFormat的實例。format()
方法將數字格式化為字符串。parse()
方法將字符串解析為數字。下面是一個使用NumberFormat的示例:
import java.text.NumberFormat;
public class Main {
public static void main(String[] args) {
double number = 12345.6789;
// 獲取NumberFormat實例
NumberFormat numberFormat = NumberFormat.getInstance();
// 格式化數字為字符串
String formattedNumber = numberFormat.format(number);
System.out.println("Formatted number: " + formattedNumber);
// 解析字符串為數字
try {
Number parsedNumber = numberFormat.parse(formattedNumber);
System.out.println("Parsed number: " + parsedNumber);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
輸出結果為:
Formatted number: 12,345.679
Parsed number: 12345.679
DecimalFormat是NumberFormat的子類,它專門用于格式化和解析十進制數字。與NumberFormat相比,DecimalFormat提供了更多的控制選項,例如指定小數點位置、千分位分隔符等。要使用DecimalFormat,可以按照以下步驟進行:
format()
方法將數字格式化為字符串。parse()
方法將字符串解析為數字。下面是一個使用DecimalFormat的示例:
import java.text.DecimalFormat;
public class Main {
public static void main(String[] args) {
double number = 12345.6789;
// 創建DecimalFormat對象并指定格式化模式
DecimalFormat decimalFormat = new DecimalFormat("#,##0.00");
// 格式化數字為字符串
String formattedNumber = decimalFormat.format(number);
System.out.println("Formatted number: " + formattedNumber);
// 解析字符串為數字
try {
Number parsedNumber = decimalFormat.parse(formattedNumber);
System.out.println("Parsed number: " + parsedNumber);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
輸出結果為:
Formatted number: 12,345.68
Parsed number: 12345.68
在上面的示例中,使用#,##0.00
作為格式化模式,表示數字使用千分位分隔符,并保留兩位小數。你可以根據自己的需求調整格式化模式。