Метод divide
Метод divide класса BigDecimal выполняет деление
одного числа на другое. В первый параметр мы передаем делитель
(число, на которое делим), во второй параметр - масштаб
(количество знаков после запятой), в третий - режим округления
RoundingMode. Без указания масштаба и режима округления
метод может выбросить исключение ArithmeticException,
если результат деления нельзя представить точно.
Синтаксис
bigDecimal.divide(divisor)
bigDecimal.divide(divisor, scale, roundingMode)
Пример
Давайте разделим число 10 на 2 без указания
масштаба. Результат деления точен:
import java.math.BigDecimal;
public class Main
{
public static void main(String[] args)
{
BigDecimal a = new BigDecimal("10");
BigDecimal b = new BigDecimal("2");
BigDecimal res = a.divide(b);
System.out.println(res);
}
}
Результат выполнения кода:
5
Пример
Давайте разделим число 10 на 3 с указанием
масштаба 2 и режима округления HALF_UP:
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main
{
public static void main(String[] args)
{
BigDecimal a = new BigDecimal("10");
BigDecimal b = new BigDecimal("3");
BigDecimal res = a.divide(b, 2, RoundingMode.HALF_UP);
System.out.println(res);
}
}
Результат выполнения кода:
3.33
Пример
Давайте разделим число 1 на 8 с масштабом
4 и режимом округления HALF_UP:
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main
{
public static void main(String[] args)
{
BigDecimal a = new BigDecimal("1");
BigDecimal b = new BigDecimal("8");
BigDecimal res = a.divide(b, 4, RoundingMode.HALF_UP);
System.out.println(res);
}
}
Результат выполнения кода:
0.1250
Пример
Давайте попробуем разделить число 1 на 3
без указания масштаба и режима округления. Это приведет
к исключению ArithmeticException:
import java.math.BigDecimal;
public class Main
{
public static void main(String[] args)
{
BigDecimal a = new BigDecimal("1");
BigDecimal b = new BigDecimal("3");
BigDecimal res = a.divide(b);
System.out.println(res);
}
}
Результат выполнения кода:
Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
Смотрите также
-
класс
BigDecimal,
который представляет неизменяемые десятичные числа -
метод
multiply,
который выполняет умножение -
метод
setScale,
который устанавливает масштаб числа -
перечисление
RoundingMode,
которое задает режимы округления