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 に近づくように丸めるモードです。いわゆる「切り捨て」です。

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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());
}
}
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()); } }
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