今回はdivide()が何かと簡単なサンプルコードで解説します。

divide()とは何か

BigDecimal(少数を正確に扱う型)における割り算を実行するためのメソッドです。

サンプルコードで見た方が理解が深まるのでそうします。

少数がない場合

まずは10÷2 を計算してみます。

import java.math.BigDecimal;

public class Main {
    public static void main(String[] args) {
        BigDecimal number1 = new BigDecimal("10");
        BigDecimal number2 = new BigDecimal("2");

        BigDecimal result = number1.divide(number2);

        System.out.println(result);
    }
}

5行目で10を生成して6行目で2を生成しています。

そして8行目の下記のコードで10÷2を行っています、「割られる数.divide(割る数)」です。

number1.divide(number2);

小数点以下の桁数を指定する場合

次は10÷3を計算します。

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

public class Main {
    public static void main(String[] args) {
        BigDecimal number1 = new BigDecimal("10");
        BigDecimal number2 = new BigDecimal("3");

        BigDecimal result = number1.divide(
            number2,
            2,
            RoundingMode.HALF_UP
        );

        System.out.println(result);
    }
}

先程のとの違いは少数があることです。

少数がある場合は9行目〜13行目の11行目・12行目を追加します。

11行目は桁数の指定で12行目は小数点の繰り上げをしています。

もしも繰り下げをする場合は下記の記述をします。

BigDecimal result = number1.divide(
    number2,
    2,
    RoundingMode.DOWN // ←この記述をする
);