Тип BigDecimal

Тип BigDecimal представляет десятичные числа с произвольной точностью, что позволяет выполнять точные арифметические операции без потерь точности, которые характерны для типов с плавающей точкой Float и Double. Используется для финансовых расчетов и других операций, требующих высокой точности.

Импорт

kotlinimport java.math.BigDecimal
import java.math.RoundingMode

Синтаксис создания

kotlinval num1 = BigDecimal("123.456")
val num2 = BigDecimal(123.456)
val num3 = 123.456.toBigDecimal()
val num4 = BigDecimal.valueOf(123.456)

Пример

Создание BigDecimal из строки:

kotlinval number = BigDecimal("123.456789")
println(number)

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

kotlinBigDecimal 123.456789

Пример

Создание BigDecimal из Double:

kotlinval number = 123.456789.toBigDecimal()
println(number)

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

kotlinBigDecimal 123.456789

Пример

Арифметические операции с BigDecimal:

kotlinval num1 = BigDecimal("10.5")
val num2 = BigDecimal("3.2")

val sum = num1 + num2
val diff = num1 - num2
val product = num1 * num2
val quotient = num1 / num2

println("Sum: $sum")
println("Difference: $diff")
println("Product: $product")
println("Quotient: $quotient")

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

kotlinSum: 13.7
Difference: 7.3
Product: 33.60
Quotient: 3.28125

Пример

Округление BigDecimal с указанием точности:

kotlinval number = BigDecimal("123.456789")
val rounded = number.setScale(2, RoundingMode.HALF_UP)
println(rounded)

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

kotlinBigDecimal 123.46

Пример

Сравнение BigDecimal чисел:

kotlinval num1 = BigDecimal("123.45")
val num2 = BigDecimal("67.89")

println("num1 > num2: ${num1 > num2}")
println("num1 < num2: ${num1 < num2}")
println("num1 == num2: ${num1 == num2}")

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

kotlinnum1 > num2: true
num1 < num2: false
num1 == num2: false

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

  • тип Double,
    который представляет числа с плавающей точкой двойной точности
  • тип Float,
    который представляет числа с плавающей точкой одинарной точности
  • тип BigInteger,
    который представляет целые числа произвольной точности
  • класс Array,
    который представляет массивы объектов