1. 程式人生 > 其它 >Java保留兩位小數的幾種寫法總結

Java保留兩位小數的幾種寫法總結

轉載自:https://www.cnblogs.com/exmyth/p/13747331.html

 

本文列舉了幾個方法:

     1. 使用java.math.BigDecimal

     2. 使用java.text.DecimalFormat

     3. 使用java.text.NumberFormat

     4. 使用java.util.Formatter

     5. 使用String.format

文章末尾給大家分享了更多的拓展知識,另外可以自己實現或者借用封裝好的類庫來實現,在這篇文章中就不一一列舉了。 下面來看看詳細的介紹。

一、使用BigDecimal,保留小數點後兩位

1 public static String format1(double value) {
2  BigDecimal bd = new BigDecimal(value);
3  bd = bd.setScale(2, RoundingMode.HALF_UP);
4  return bd.toString();
5 }
 

 

二、使用DecimalFormat,保留小數點後兩位

1 public static String format2(double value) {
2  DecimalFormat df = new DecimalFormat("0.00");
3  df.setRoundingMode(RoundingMode.HALF_UP);
4 return df.format(value); 5 }

 

 

三、使用NumberFormat,保留小數點後兩位

 1 public static String format3(double value) {
 2  NumberFormat nf = NumberFormat.getNumberInstance();
 3  nf.setMaximumFractionDigits(2);
 4  /*
 5   * setMinimumFractionDigits設定成2
 6   *
 7   * 如果不這麼做,那麼當value的值是100.00的時候返回100
 8   *
 9   * 而不是100.00
10 */ 11 nf.setMinimumFractionDigits(2); 12 nf.setRoundingMode(RoundingMode.HALF_UP); 13 /* 14 * 如果想輸出的格式用逗號隔開,可以設定成true 15 */ 16 nf.setGroupingUsed(false); 17 return nf.format(value); 18 }

 

 

四、使用java.util.Formatter,保留小數點後兩位

1 public static String format4(double value) {
2  /*
3   * %.2f % 表示 小數點前任意位數 2 表示兩位小數 格式後的結果為 f 表示浮點型
4   */
5  return new Formatter().format("%.2f", value).toString();
6 }

 

 

五、使用String.format來實現。

1 public static String format5(double value) {
2  return String.format("%.2f", value).toString();
3 }

 

 

擴充套件知識

String.format 作為文字處理工具,為我們提供強大而豐富的字串格式化功能。

對浮點數進行格式化                        

佔位符格式為: %[index$][標識]*[最小寬度][.精度]轉換符

1 double num = 123.4567899;
2 System.out.print(String.format("%f %n", num)); // 123.456790
3 System.out.print(String.format("%a %n", num)); // 0x1.edd3c0bb46929p6 
4 System.out.print(String.format("%g %n", num)); // 123.457

 

 

可用標識:

      -,在最小寬度內左對齊,不可以與0標識一起使用。

      0,若內容長度不足最小寬度,則在左邊用0來填充。

      #,對8進位制和16進位制,8進位制前新增一個0,16進位制前新增0x。

      +,結果總包含一個+或-號。

      空格,正數前加空格,負數前加-號。

      ,,只用與十進位制,每3位數字間用,分隔。

      (,若結果為負數,則用括號括住,且不顯示符號。

可用轉換符:

      b,布林型別,只要實參為非false的布林型別,均格式化為字串true,否則為字串false。

      n,平臺獨立的換行符, 也可通過System.getProperty("line.separator")獲取。

      f,浮點數型(十進位制)。顯示9位有效數字,且會進行四捨五入。如99.99。

      a,浮點數型(十六進位制)。

      e,指數型別。如9.38e+5。

      g,浮點數型(比%f,%a長度短些,顯示6位有效數字,且會進行四捨五入)

總結

以上就是Java中保留兩位小數多種寫法的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。