РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
627 of 1163 menu

Метод subtract

Метод subtract класса BigDecimal выполняет вычитание одного десятичного числа из другого. Первым параметром метод принимает вычитаемое (то, что нужно отнять), а сам метод вызывается у уменьшаемого (того числа, из которого вычитают). Метод возвращает новый объект BigDecimal, а исходные объекты не изменяются, так как класс BigDecimal неизменяемый.

Вторым необязательным параметром можно передать объект MathContext, который задаёт точность и режим округления результата. Если второй параметр не указан, вычитание выполняется без округления с максимально возможной точностью.

Синтаксис

bigDecimal1.subtract(bigDecimal2, [mathContext])

Пример

Давайте вычтем из числа 10.5 число 3.2:

import java.math.BigDecimal; public class Main { public static void main(String[] args) { BigDecimal a = new BigDecimal("10.5"); BigDecimal b = new BigDecimal("3.2"); BigDecimal res = a.subtract(b); System.out.println(res); } }

Результат выполнения кода:

7.3

Пример

Давайте вычтем из числа 5 число 8. В результате должно получиться отрицательное число:

import java.math.BigDecimal; public class Main { public static void main(String[] args) { BigDecimal a = new BigDecimal("5"); BigDecimal b = new BigDecimal("8"); BigDecimal res = a.subtract(b); System.out.println(res); } }

Результат выполнения кода:

-3

Пример

Давайте вычтем из числа 1.00 число 0.50 и посмотрим, как сохраняется масштаб результата:

import java.math.BigDecimal; public class Main { public static void main(String[] args) { BigDecimal a = new BigDecimal("1.00"); BigDecimal b = new BigDecimal("0.50"); BigDecimal res = a.subtract(b); System.out.println(res); System.out.println(res.scale()); } }

Результат выполнения кода:

0.50 2

Пример

Давайте выполним вычитание с указанием объекта MathContext для округления результата до трёх значащих цифр:

import java.math.BigDecimal; import java.math.MathContext; import java.math.RoundingMode; public class Main { public static void main(String[] args) { BigDecimal a = new BigDecimal("12345.678"); BigDecimal b = new BigDecimal("1234.567"); MathContext mc = new MathContext(3, RoundingMode.HALF_UP); BigDecimal res = a.subtract(b, mc); System.out.println(res); } }

Результат выполнения кода:

1.11E+4

Пример

Давайте вычтем из одного числа другое с помощью цепочки вызовов и сравним результат с методом add:

import java.math.BigDecimal; public class Main { public static void main(String[] args) { BigDecimal a = new BigDecimal("100"); BigDecimal b = new BigDecimal("25"); BigDecimal c = new BigDecimal("10"); BigDecimal res = a.subtract(b).subtract(c); System.out.println(res); } }

Результат выполнения кода:

65

Смотрите также

  • метод add,
    который складывает два числа BigDecimal
  • метод multiply,
    который умножает два числа BigDecimal
  • метод divide,
    который делит одно число BigDecimal на другое
  • метод negate,
    который меняет знак числа BigDecimal
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить