BigDecimal的保留位數和四捨五入的方法

2022-07-21 05:57:15 字數 3914 閱讀 2614

bigdecimal num = new bigdecimal("2.225667");//一般都會這樣寫最好

int count = num.scale();

system.out.println(count);//6 返回的是小數點後位數

1. round_down

bigdecimal b = new bigdecimal("2.225667").setscale(2, bigdecimal.round_down);

system.out.println(b); 直接去掉多餘的位數

2. round_up

bigdecimal c = new bigdecimal("2.224667").setscale(2, bigdecimal.round_up);

system.out.println(c); 跟上面相反,進製處理

3. round_ceiling

天花板(向上),正數進製向上,負數舍位向上

bigdecimal f = new bigdecimal("2.224667").setscale(2, bigdecimal.round_ceiling);

system.out.println(f); 如果是正數,相當於bigdecimal.round_up

bigdecimal g = new bigdecimal("-2.225667").setscale(2, bigdecimal.round_ceiling);

system.out.println(g); 如果是負數,相當於bigdecimal.round_down

4. round_floor

地板(向下),正數舍位向下,負數進製向下

bigdecimal h = new bigdecimal("2.225667").setscale(2, bigdecimal.round_floor);

system.out.println(h); 如果是正數,相當於bigdecimal.round_down

bigdecimal i = new bigdecimal("-2.224667").setscale(2, bigdecimal.round_floor);

system.out.println(i); 如果是負數,相當於bigdecimal.round_half_up

5. round_half_up

bigdecimal d = new bigdecimal("2.225").setscale(2, bigdecimal.round_half_up);

system.out.println("round_half_up"+d); 四捨五入(若捨棄部分》=.5,就進製)

6. round_half_down

bigdecimal e = new bigdecimal("2.225").setscale(2, bigdecimal.round_half_down);

system.out.println("round_half_down"+e); 四捨五入(若捨棄部分》.5,就進製)

7. round_half_even

bigdecimal j = new bigdecimal("2.225").setscale(2, bigdecimal.round_half_even);

system.out.println(j); 如果捨棄部分左邊的數字為偶數,則作 round_half_down

bigdecimal k = new bigdecimal("2.215").setscale(2, bigdecimal.round_half_even);

system.out.println(k); 如果捨棄部分左邊的數字為奇數,則作 round_half_up

system.out.println("************************************");

system.out.println("4.05: "+new bigdecimal("4.05").setscale(1, bigdecimal.round_half_even)); 4.0 down

system.out.println("4.15: "+new bigdecimal("4.15").setscale(1, bigdecimal.round_half_even)); 4.2 up

system.out.println("4.25: "+new bigdecimal("4.25").setscale(1, bigdecimal.round_half_even)); 4.2 down

system.out.println("4.35: "+new bigdecimal("4.35").setscale(1, bigdecimal.round_half_even)); 4.4 up

system.out.println("4.45: "+new bigdecimal("4.45").setscale(1, bigdecimal.round_half_even)); 4.4 down

system.out.println("4.55: "+new bigdecimal("4.55").setscale(1, bigdecimal.round_half_even)); 4.6 up

system.out.println("4.65: "+new bigdecimal("4.65").setscale(1, bigdecimal.round_half_even)); 4.6 down

system.out.println("3.05: "+new bigdecimal("3.05").setscale(1, bigdecimal.round_half_even)); 3.0 down

system.out.println("3.15: "+new bigdecimal("3.15").setscale(1, bigdecimal.round_half_even)); 3.2 up

system.out.println("3.25: "+new bigdecimal("3.25").setscale(1, bigdecimal.round_half_even)); 3.2 down

system.out.println("3.35: "+new bigdecimal("3.35").setscale(1, bigdecimal.round_half_even)); 3.4 up

system.out.println("3.45: "+new bigdecimal("3.45").setscale(1, bigdecimal.round_half_even)); 3.4 down

system.out.println("3.55: "+new bigdecimal("3.55").setscale(1, bigdecimal.round_half_even)); 3.6 up

system.out.println("3.65: "+new bigdecimal("3.65").setscale(1, bigdecimal.round_half_even)); 3.6 down

8.round_unnecessary

bigdecimal l = new bigdecimal("2.215").setscale(3, bigdecimal.round_unnecessary);

system.out.println(l);

//斷言請求的操作具有精確的結果,因此不需要捨入。

//如果對獲得精確結果的操作指定此捨入模式,則丟擲arithmeticexception。

BigDecimal如何保留小數字

bigdecimal怎麼保留字段呢,bigdecimal big new bigdecimal 2.3513 設定bigdecimal初始值big.setscale 1 保留1位小數,預設用四捨五入。big.setscale 1,bigdecimal.round down 直接刪除多餘的小數,2.3...

BigDecimal加減乘除保留小數

public bigdecimal add bigdecimal augend 加 bigdecimal bd1 new bigdecimal 0.09 bigdecimal bd2 new bigdecimal 0.01 system.out.println add bd1.add bd2 sys...

BigDecimal如何保留小數字

1 bigdecimal big new bigdecimal 2.3513 設定bigdecimal初始值 2 big.setscale 1 保留1位小數,預設用四捨五入。3 big.setscale 1,bigdecimal.round down 直接刪除多餘的小數,2.3513直接被截斷位2....