BigDecimal取整

BigDecimal bd = new BigDecimal("12.1");
long l  = bd.setScale( 0, BigDecimal.ROUND_UP ).longValue(); // 向上取整
long l  = bd.setScale( 0, BigDecimal.ROUND_DOWN ).longValue(); // 向下取整

* 對于正數(shù)而言,ROUND_UP  = ROUND_CEILING,ROUND_DOWN = ROUND_FLOOR

各個roundingMode詳解如下:

ROUND_UP:非0時,舍棄小數(shù)后(整數(shù)部分)加1,比如12.49結果為13,-12.49結果為 -13
ROUND_DOWN:直接舍棄小數(shù)
ROUND_CEILING:如果 BigDecimal 是正的,則做 ROUND_UP 操作;如果為負,則做 ROUND_DOWN 操作 (一句話:取附近較大的整數(shù))
ROUND_FLOOR: 如果 BigDecimal 是正的,則做 ROUND_DOWN 操作;如果為負,則做 ROUND_UP 操作(一句話:取附近較小的整數(shù))
ROUND_HALF_UP:四舍五入(取更近的整數(shù))
ROUND_HALF_DOWN:跟ROUND_HALF_UP 差別僅在于0.5時會向下取整
ROUND_HALF_EVEN:取最近的偶數(shù)
ROUND_UNNECESSARY:不需要取整,如果存在小數(shù)位,就拋ArithmeticException 異常
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,076評論 25 708
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 12,862評論 2 59
  • 應用場景 大多數(shù)的商業(yè)計算中,一般采用java.math.BigDecimal類來進行精確計算。比如:貨幣 使用 ...
    九都散人閱讀 11,144評論 0 9
  • MrAbel閱讀 186評論 0 0
  • 深冬夜里 我聽到雪一點點融化自己 我知道無數(shù)勇士彎著腰 在堅硬的現(xiàn)實下等待 ——我們早已懂得聲音的意義 于是我 將...
    火火的木木閱讀 301評論 0 0