int -231~231-1 -2147483648~2147483647
float -2128~2128-1 -3.40e+38 ~ +3.40e+38
double -21024~21024-1 -1.79e+308 ~ +1.79e+308
bigdecimal bg = new bigdecimal(s).setscale(2, roundingmode.half_up);
roundingmode.up: 1.111 -> 1.12,1.116 -> 1.12
roundingmode.half_up:1.111 -> 1.11,1.116 -> 1.12
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則向下舍
setscaler(1,bigdecimal.round_ceiling)接近正無窮大的捨入
setscaler(1,bigdecimal.round_floor)接近負無窮大的捨入,數字》0和round_up作用一樣,數字<0和round_down作用一樣
setscaler(1,bigdecimal.round_half_even)向最接近的數字捨入,如果與兩個相鄰數字的距離相等,則向相鄰的偶數捨入。
注釋: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
decimalformat format 方法
大家在format()乙個小數是,總是對格式中的'0'和'#'有些不解吧!
eg:
1:new decimalformat("00.000").format(pi) //結果:03.142
2:new decimalformat("##.###").format(pi) //結果:3.142
都是對pi進行格式化,但第乙個的結果是03.142,第二個的結果是3.142
這是什麼原因呢?
0和#都是佔位符,但在不同的地方,作用不一樣。下面對他們做了具體的比較。
希望對大家有所幫助。
0: 比實際數字的位數多,不足的地方用0補上。
new decimalformat("00.00").format(3.14) //結果:03.14
new decimalformat("0.000").format(3.14) //結果: 3.140
new decimalformat("00.000").format(3.14) //結果:03.140
比實際數字的位數少:整數部分不改動,小數部分,四捨五入
new decimalformat("0.000").format(13.146) //結果:13.146
new decimalformat("00.00").format(13.146) //結果:13.15
new decimalformat("0.00").format(13.146) //結果:13.15
#: 比實際數字的位數多,不變。
new decimalformat("##.##").format(3.14) //結果:3.14
new decimalformat("#.###").format(3.14) //結果: 3.14
new decimalformat("##.###").format(3.14) //結果:3.14
比實際數字的位數少:整數部分不改動,小數部分,四捨五入
new decimalformat("#.###").format(13.146) //結果:13.146
new decimalformat("##.##").format(13.146) //結果:13.15
new decimalformat("#.##").format(13.146) //結果:13.15
資料處理 流資料處理利器
流處理 stream processing 是一種計算機程式設計正規化,其允許給定乙個資料序列 流處理資料來源 一系列資料操作 函式 被應用到流中的每個元素。同時流處理工具可以顯著提高程式設計師的開發效率,允許他們編寫有效 乾淨和簡潔的 流資料處理在我們的日常工作中非常常見,舉個例子,我們在業務開發...
爬蟲 資料處理 pandas資料處理
使用duplicated 函式檢測重複的行,返回元素為布林型別的series物件,每個元素對應一行,如果該行不是第一次出現,則元素為true keep引數 指定保留哪一重複的行資料 dataframe替換操作 使用df.std 函式可以求得dataframe物件每一列的標準差 資料清洗清洗重複值 清...
資料處理 pandas資料處理優化方法小結
資料處理時使用最多的就是pandas庫,pandas在資料處理方面很強大,整合了資料處理和資料視覺化。pandas的視覺化使用的是matplotlib。回到主題 計算資料的某個欄位的所有值,對其欄位所有值進行運算 處理的字段資料為時間戳,需要計算該時間戳距離現在的時間,單位為天。一般方法 使用現在的...