Тип 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
,
который представляет массивы объектов