java中double變量保留小數問題

   

    做java項目的時候可能經常會遇到double類型變量保留小數的問題,下面便把我的經驗做個簡短的總結:  

java中double類型變量保留小數問題大體分兩種情況:

(一):小數點後面位數過長,四捨五入保留指定位數:

可以用以下代碼實現:

public class TestDemo {
 public static void main(String[] args) {
     double a=15.32743859;
     double b=Math.round(a*10000)/10000.0000;//保留四位小數
     System.out.println(b); 
 }
}

想保留n位小數,就Math.round(a*10的n次方)/10的n次方.n個0。

(二):如果小數點後末位爲0,myeclipse中不予顯示,如

      double a=15.80;
      System.out.print(a);

則在控制檯中輸出的結果是15.8。

而我們有時候希望把百分位的0也顯示出來,比如說顯示商品價格,一般是顯示兩位小數,如果商品價格是15.8,也顯示爲15.80,如果商品價格是15,也顯示爲15.00,這種情況,用(一)中的方法便無法實現了,那應該如何實現呢?

請看下面代碼:

import java.text.DecimalFormat;

public class TestDemo {
 public static void main(String[] args) {
  DecimalFormat df =new DecimalFormat("#####0.00");
     double a=15;
     System.out.println(df.format(a)); 
 }
}

    這樣,即使在我們的double類型變量是15,顯示出來的也是15.00。當然,我們希望顯示多少位就在"#####0.00"的點後面去控制0的個數便可以。如果是"#####0"的話,那我們的double變量無論是15.0或是15.00都能顯示成15,而如果我們的double變量是15.60,則顯示爲16,即這種方法也可以實現四捨五入。它包含了(一)的功能,所以我們遇到兩種情況都可以選擇這種方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章