回覆列表
  • 1 # 使用者834195712159

    下面是五種處理方法,使double型別的資料保留2位小數。

    /*具體程式碼*/

    import java.math.BigDecimal;

    import java.math.RoundingMode;

    import java.text.DecimalFormat;

    public class Test {

    double[] num = {3.4567, 3, 0.4567, 2343.333, 133, 3.1415};

    public void func() {

    int i = 1;

    for(double d:num){

    System.out.println("測試"+(i++)+" = "+d);

    String dstr = String.valueOf(d);

    // 第一種:

    java.text.DecimalFormat df = new java.text.DecimalFormat("#.##");

    System.out.println("第一種="+df.format(d));

    // 第二種:透過下面的結果可以看出,一二兩種都可以,第一種如果小數部分是0的話就只顯示整數,第二種始終顯示兩位小數

    BigDecimal bd = new BigDecimal(dstr);

    bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);

    System.out.println("第二種="+bd);

    // 第三種:

    long l = Math.round(d * 100); // 四捨五入

    double ret = l / 100.0; // 注意:使用 100.0 而不是 100

    System.out.println("第三種="+ret);

    // 第四種:

    d = ((int) (d * 100)) / 100;

    System.out.println("第四種="+d);

    //第五種

    DecimalFormat df2 = new DecimalFormat("#.00");

    //df2.setRoundingMode(RoundingMode.HALF_UP);

    System.out.println("第五種="+df2.format(d));

    System.out.println("-------------------------");

    }

    }

    public static void main(String[] args) {

    Test t = new Test();

    t.func();

    }

    }

    執行結果:

    測試1 = 3.4567

    第一種=3.46

    第二種=3.46

    第三種=3.46

    第四種=3.0

    第五種=3.00

    -------------------------

    測試2 = 3.0

    第一種=3

    第二種=3.00

    第三種=3.0

    第四種=3.0

    第五種=3.00

    -------------------------

    測試3 = 0.4567

    第一種=0.46

    第二種=0.46

    第三種=0.46

    第四種=0.0

    第五種=.00

    -------------------------

    測試4 = 2343.333

    第一種=2343.33

    第二種=2343.33

    第三種=2343.33

    第四種=2343.0

    第五種=2343.00

    -------------------------

    測試5 = 133.0

    第一種=133

    第二種=133.00

    第三種=133.0

    第四種=133.0

    第五種=133.00

    -------------------------

    測試6 = 3.1415

    第一種=3.14

    第二種=3.14

    第三種=3.14

    第四種=3.0

    第五種=3.00

    -------------------------

  • 中秋節和大豐收的關聯?
  • 梅開十年只等君來歸是哪首歌的歌詞?