Java11 RoundingModeでBigDecimalの小数点切り上げ・切り捨てサンプル

環境
JavaSE 11
Eclipse 4.26.0

構文
1.RoundingMode.UP
0 から離れるように丸めるモードです

2.RoundingMode.HALF_UP
両隣りの数字が等距離の場合は切り上げられます

3.RoundingMode.HALF_EVEN
両隣りの数字が等距離の場合は偶数側に丸められます

4.RoundingMode.FLOOR
負の無限大に近づくように丸めるモードです。

5.RoundingMode.DOWN
0 に近づくように丸めるモードです。いわゆる「切り捨て」です。

使用例

package com.arkgame.study;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class DemoTest {

      public static void main(String[] args) {
            // DOWN
            BigDecimal bd1 = new BigDecimal("123.5");
            BigDecimal res1 = bd1.setScale(0, RoundingMode.DOWN);
            System.out.println("DOWN切り捨て: " + res1.toPlainString());

            // FLOOR
            BigDecimal bd2 = new BigDecimal("-10.5");
            BigDecimal res2 = bd2.setScale(0, RoundingMode.FLOOR);
            System.out.println("FLOOR負の無限大: " + res2.toPlainString());

            // HALF_EVEN
            BigDecimal bd3 = new BigDecimal("11.6");
            BigDecimal res3 = bd3.setScale(0, RoundingMode.HALF_EVEN);
            System.out.println("HALF_EVEN偶数側に丸め: " + res3.toPlainString());

            // HALF_UP
            BigDecimal bd4 = new BigDecimal("12.5");
            BigDecimal res4 = bd4.setScale(0, RoundingMode.HALF_UP);
            System.out.println("HALF_UP切り上げ: " + res4.toPlainString());

      }
}

実行結果
DOWN切り捨て: 123
FLOOR負の無限大: -11
HALF_EVEN偶数側に丸め: 12
HALF_UP切り上げ: 13

Java

Posted by arkgame