BigDecimal 運用小數

2021-08-27 20:09:04 字數 2017 閱讀 7744

bigdecimal.setscale()方法用於格式化小數點

setscale(1)表示保留一位小數,預設用四捨五入方式 

setscale(1,bigdecimal.round_down)直接刪除多餘的小數字,如2.35會變成2.3 

setscale(1,bigdecimal.round_up)進製處理,2.35變成2.4 

setscale(1,bigdecimal.round_half_up)四捨五入,2.35變成2.4

setscaler(1,bigdecimal.round_half_down)四捨五入,2.35變成2.3,如果是5則向下舍

注釋:1:

scale指的是你小數點後的位數。比如123.456則score就是3.

score()就是bigdecimal類中的方法啊。

比如:bigdecimal b = new bigdecimal("123.456");

b.scale(),返回的就是3.

2:roundingmode是小數的保留模式。它們都是bigdecimal中的常量字段,有很多種。

比如:bigdecimal.round_half_up表示的就是4舍5入。

3:pubilc bigdecimal divide(bigdecimal divisor, int scale, int roundingmode)

的意思是說:我用乙個bigdecimal物件除以divisor後的結果,並且要求這個結果保留有scale個小數字,roundingmode表示的就是保留模式是什麼,是四捨五入啊還是其它的,你可以自己選!

4:對於一般add、subtract、multiply方法的小數字格式化如下:

bigdecimal mdata = new bigdecimal("9.655").setscale(2, bigdecimal.round_half_up);

system.out.println("mdata=" + mdata);

----結果:----- mdata=9.66

string yearrate ="0.13999999999999999999";

system.out.println(yearrate);

bigdecimal decimal = new bigdecimal(yearrate).multiply(new bigdecimal(100));

yearrate = decimal.setscale(2, bigdecimal.round_down).tostring();

system.out.println(yearrate);

----結果:

0.13999999999999999999

13.99

static bigdecimal one 

值為 1,標度為 0。 

static int round_ceiling 

接近正無窮大的捨入模式。 

static int round_down 

接近零的捨入模式。 

static int round_floor 

接近負無窮大的捨入模式。 

static int round_half_down 

向「最接近的」數字捨入,如果與兩個相鄰數字的距離相等,則為上捨入的捨入模式。 

static int round_half_even 

向「最接近的」數字捨入,如果與兩個相鄰數字的距離相等,則向相鄰的偶數捨入。 

static int round_half_up 

向「最接近的」數字捨入,如果與兩個相鄰數字的距離相等,則為向上捨入的捨入模式。 

static int round_unnecessary 

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

static int round_up 

捨入遠離零的捨入模式。 

static bigdecimal ten 

值為 10,標度為 0。 

static bigdecimal zero 

值為 0,標度為 0。

BigDecimal設定小數字數

public static void main string args bigdecimal x new bigdecimal 2.22262222222222222222222222 setscale 3,bigdecimal.round half up system.out.println x....

BigDecimal如何保留小數字

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

關於BigDecimal,小數型別的處理

小數字數 bigdecimal.setscale 方法用於格式化小數點 setscale 1 表示保留一位小數,預設用四捨五入方式 setscale 1,bigdecimal.round down 直接刪除多餘的小數字,如2.35會變成2.3 setscale 1,bigdecimal.round ...