假設x是你要轉換的double類型變量:
不進行四舍五入操作: (int)x
進行四舍五入操作: Integer.parseInt(new java.text.DecimalFormat("0").format(x));
DecimalFormat 是 NumberFormat 的一個具體子類,用於格式化十進制數字。該類設計有各種功能,使其能夠分析和格式化任意語言環境中的數,包括對西方語言、阿拉伯語和印度語數字的支持。它還支持不同類型的數,包括整數 (123)、定點數 (123.4)、科學記數法表示的數 (1.23E4)、百分數 (12%) 和金額 ($123)。所有這些內容都可以本地化。
DecimalFormat 包含一個模式 和一組符號
符號含義:
符號 位置 本地化? 含義
0 數字 是 阿拉伯數字
# 數字字 是 阿拉伯數字,如果不存在則顯示為空
. 數字 是 小數分隔符或貨幣小數分隔符
- 數字 是 減號
, 數字 是 分組分隔符
E 數字 是 分隔科學計數法中的尾數和指數。在前綴或后綴中無需加引號。
; 子模式邊界 是 分隔正數和負數子模式
% 前綴或后綴 是 乘以 100 並顯示為百分數
/u2030 前綴或后綴 是 乘以 1000 並顯示為千分數
¤(/u00A4) 前綴或后綴 否 貨幣記號,由貨幣符號替換。如果兩個同時出現,則用國際貨幣符號替換。如果出現在某個模式中,則使用貨幣小數分隔符,而不使用小數分隔符。
' 前綴或后綴 否 用於在前綴或或后綴中為特殊字符加引號,例如 "'#'#" 將 123 格式化為 "#123"。要創建單引號本身,請連續使用兩個單引號:"# o''clock"。
例子:
[java] view plain copy
DecimalFormat df1 = new DecimalFormat("0.0");
DecimalFormat df2 = new DecimalFormat("#.#");
DecimalFormat df3 = new DecimalFormat("000.000");
DecimalFormat df4 = new DecimalFormat("###.###");
System.out.println(df1.format(12.34));
System.out.println(df2.format(12.34));
System.out.println(df3.format(12.34));
System.out.println(df4.format(12.34));
運行結果:
12.3
12.3
012.340
12.34
[java] view plain copy
DecimalFormat format = new DecimalFormat("###,####.000");
System.out.println(format.format(111111123456.1227222));
Locale.setDefault(Locale.US);
DecimalFormat usFormat = new DecimalFormat("###,###.000");
System.out.println(usFormat.format(111111123456.1227222));
DecimalFormat addPattenFormat = new DecimalFormat();
addPattenFormat.applyPattern("##,###.000");
System.out.println(addPattenFormat.format(111111123456.1227));
DecimalFormat zhiFormat = new DecimalFormat();
zhiFormat.applyPattern("0.000E0000");
System.out.println(zhiFormat.format(10000));
System.out.println(zhiFormat.format(12345678.345));
DecimalFormat percentFormat = new DecimalFormat();
percentFormat.applyPattern("#0.000%");
System.out.println(percentFormat.format(0.3052222));
運行結果 :
1111,1112,3456.123
111,111,123,456.123
111,111,123,456.123
1.000E0004
1.235E0007
30.522%
如果使用具有多個分組字符的模式,則最后一個分隔符和整數結尾之間的間隔才是使用的分組大小。所以 "#,##,###,####" == "######,####" == "##,####,####"。