在12c中,adf統計使用了bigdecimal來作為數字的資料型別,bigdecimal類本來主要用於商業運算,在實現的專案中習慣了用int和float了,所以在用12c開發的時候,因為bigdecimal運算導致不少的精度異常,比如78.5,明明與保留了乙個小數字,可還是提示報精度異常。雖然我們可以通過numberformat類來格式化,但最終adf還是需要幫我們自動轉換成bigdecimal,故是多餘的。現在把bigdecimal類的一些方法做個簡介以示教訓吧.
構造器
bigdecimal(int)建立乙個具有引數所指定整數值的物件。
bigdecimal(double)建立乙個具有引數所指定雙精度值的物件。
bigdecimal(long)建立乙個具有引數所指定長整數值的物件。
bigdecimal(string)建立乙個具有引數所指定以字串表示的數值的物件。
方 法描 述
add(bigdecimal)bigdecimal物件中的值相加,然後返回這個物件。
subtract(bigdecimal)bigdecimal物件中的值相減,然後返回這個物件。
multiply(bigdecimal)bigdecimal物件中的值相乘,然後返回這個物件。
divide(bigdecimal)bigdecimal物件中的值相除,然後返回這個物件。
tostring()將bigdecimal物件的數值轉換成字串。
doublevalue()將bigdecimal物件中的值以雙精度數返回。
floatvalue()將bigdecimal物件中的值以單精度數返回。
longvalue()將bigdecimal物件中的值以長整數返回。
intvalue()將bigdecimal物件中的值以整數返回。
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表示的就是保留模式是什麼,是四捨五入啊還是其它的,你可以自己選!
在ADF中為Table自動生成行號
概述 在某些業務需求中,會需要在以table的形式展現的資料中增添行號,使顯示更為清晰,本文將介紹如何在adf中簡便地實現自動生成行號。實現2 在viewcontroller project中建立main.jspx頁面,從 data controls 面板中拖動departments對應的vo的例項...
vue中為物件增加屬性
從後台返回的資料,要對資料進行拼接。比如 後台返回資料a物件,a物件有個屬性集合屬性b。需要將b中的乙個屬性拼接在一起,然後賦值給a物件。從網上看到兩種寫法 var records response.data.data.records var listarray records.foreach fu...
MySQL中欄位型別為timestamp的小坑
之前遇到過乙個mysql的字段為timestamp型別的小坑。mysql中乙個字段儲存時間型別資料的時候,該字段的型別如果為timestamp型別的話,最多只能儲存到2038 01 19 11 14 07這個時間,大於這個時間段就會出現錯誤。這是因為timestamp型別欄位的長度為4個位元組,最大...