1. 引入:
如何控制輸出資料的精度?
>1. 使用Math.round方法
(1)Java如何把一個float(double)四舍五入到小數點後2位,4位,或者其它指定位數 ?
答:比如,如下案例:
float a = 123.2354f;
float b = (float)(Math.round(a*100))/100 // 輸出123.24
如果想要3位就是把2個100都換成1000
(2)根據上面的規律,我們可以定義一個方法,專門用來四舍五入浮點數特定位數:
運作調試:
>2. 使用String.format(String pattern)方法
輸出為:

備注:
%.2f %. 表示小數點前任意位數 2 表示兩位小數 f 表示格式後的結果為浮點型
2. 其實Java提供了資料格式化的類---DecimalFormat,下面就說一下DecimalFormat的使用:
(1)首先介紹一下各種符号的含義:
0 一個數字
# 一個數字,不包括 0
. 小數的分隔符的占位符
, 分組分隔符的占位符
; 分隔格式。
- 預設負數字首。
% 乘以100 和作為百分比顯示
? 乘以1000 和作為千進制貨币符顯示;用貨币符号代替;如果雙寫,用國際貨币符号代替。如果出現在一個模式中,用貨币十進制分隔符代替十進制分隔符。
X 字首或字尾中使用的任何其它字元,用來引用字首或字尾中的特殊字元。
(2)特别的,對 '0' 和 '#' 的差別重點講一下,如下:
0:
比實際數字的位數多,不足的地方用0補上。
new DecimalFormat("00.00").format(3.14) //結果:03.14
new DecimalFormat("0.000").format(3.14) //結果: 3.140
new DecimalFormat("00.000").format(3.14) //結果:03.140
比實際數字的位數少:整數部分不改動,小數部分,四舍五入
new DecimalFormat("0.000").format(13.146) //結果:13.146
new DecimalFormat("00.00").format(13.146) //結果:13.15
new DecimalFormat("0.00").format(13.146) //結果:13.15
#:
比實際數字的位數多,不變。
new DecimalFormat("##.##").format(3.14) //結果:3.14
new DecimalFormat("#.###").format(3.14) //結果: 3.14
new DecimalFormat("##.###").format(3.14) //結果:3.14
new DecimalFormat("#.###").format(13.146) //結果:13.146
new DecimalFormat("##.##").format(13.146) //結果:13.15
new DecimalFormat("#.##").format(13.146) //結果:13.15
(3)使用DecimalFormat的示例代碼,如下:
運作結果,如下: