АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP, Python или фреймворки. Сегодня последний день для записи! Жми!
160 of 1310 menu
Новый формат обучения! Репетиторство по программированию. Есть еще 3 свободных места! Жми для подробностей.

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