Тип BigDecimal
Тип BigDecimal представляет десятичные числа с произвольной точностью,
что позволяет выполнять точные арифметические операции без потерь точности,
которые характерны для типов с плавающей точкой Float и Double.
Используется для финансовых расчетов и других операций, требующих высокой точности.
Импорт
import java.math.BigDecimal
import java.math.RoundingMode
Синтаксис создания
val num1 = BigDecimal("123.456")
val num2 = BigDecimal(123.456)
val num3 = 123.456.toBigDecimal()
val num4 = BigDecimal.valueOf(123.456)
Пример
Создание BigDecimal из строки:
val number = BigDecimal("123.456789")
println(number)
Результат выполнения кода:
BigDecimal 123.456789
Пример
Создание BigDecimal из Double:
val number = 123.456789.toBigDecimal()
println(number)
Результат выполнения кода:
BigDecimal 123.456789
Пример
Арифметические операции с BigDecimal:
val 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")
Результат выполнения кода:
Sum: 13.7
Difference: 7.3
Product: 33.60
Quotient: 3.28125
Пример
Округление BigDecimal с указанием точности:
val number = BigDecimal("123.456789")
val rounded = number.setScale(2, RoundingMode.HALF_UP)
println(rounded)
Результат выполнения кода:
BigDecimal 123.46
Пример
Сравнение BigDecimal чисел:
val num1 = BigDecimal("123.45")
val num2 = BigDecimal("67.89")
println("num1 > num2: ${num1 > num2}")
println("num1 < num2: ${num1 < num2}")
println("num1 == num2: ${num1 == num2}")
Результат выполнения кода:
num1 > num2: true
num1 < num2: false
num1 == num2: false
Смотрите также
-
тип
Double,
который представляет числа с плавающей точкой двойной точности -
тип
Float,
который представляет числа с плавающей точкой одинарной точности -
тип
BigInteger,
который представляет целые числа произвольной точности -
класс
Array,
который представляет массивы объектов