Класс scala.math.BigDecimal
Компаньон-объект объект BigDecimal
final класс BigDecimal extends ScalaNumber с ScalaNumericConversions с Serializable с Ordered[BigDecimal]
Конструкторы экземпляров
new BigDecimal(bigDecimal: java.math.BigDecimal)
new BigDecimal(bigDecimal: java.math.BigDecimal, mc: MathContext)
Члены-значения
final def !=(arg0: Any): Boolean
Проверка двух объектов на неравенство.
- возвращает
trueесли !(this == that), иначе false.
- Определяющие классы
- AnyRef → Any
final def ##(): Int
Эквивалентно x.hashCode, за исключением упакованных числовых типов и null. Для чисел возвращает значение хеша, согласованное с равенством значений: если два экземпляра типа значения сравниваются как true, то ## вернет одинаковое значение хеша для каждого из них. Для null возвращает код хеширования, где null.hashCode генерирует NullPointerException.
- возвращает
значение хеша, согласованное с ==
- Определяющие классы
- AnyRef → Any
def %(that: BigDecimal): BigDecimal
def *(that: BigDecimal): BigDecimal
def +(that: BigDecimal): BigDecimal
def -(that: BigDecimal): BigDecimal
def ->[B](y: B): (BigDecimal, B)
- Неявный
- Этот член добавлен неявным преобразованием из BigDecimal в ArrowAssoc[BigDecimal] с помощью метода ArrowAssoc в scala.Predef.
- Определяющие классы
- ArrowAssoc
- Аннотации
- @inline()
def /(that: BigDecimal): BigDecimal
def /%(that: BigDecimal): (BigDecimal, BigDecimal)
Деление и остаток - возвращает кортеж, содержащий результат деления на целое число и остаток. Вычисление точное: округление не применяется.
def <(that: BigDecimal): Boolean
Возвращает true, если this меньше that
- Определяющие классы
- Ordered
def <=(that: BigDecimal): Boolean
Возвращает true, если this меньше или равно that.
- Определяющие классы
- Ordered
final def ==(arg0: Any): Boolean
Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
- возвращает
true, если объект-получатель эквивалентен аргументу;falseв противном случае.
- Определяющие классы
- AnyRef → Any
def >(that: BigDecimal): Boolean
Возвращает true, если this больше that.
- Определяющие классы
- Ordered
def >=(that: BigDecimal): Boolean
Возвращает true, если this больше или равно that.
- Определяющие классы
- Ordered
def abs: BigDecimal
def apply(mc: MathContext): BigDecimal
final def asInstanceOf[T0]: T0
Привести объект-получатель к типу T0.
Обратите внимание, что успех приведения типов во время выполнения зависит от семантики стирания Scala. Поэтому выражение 1.asInstanceOf[String] выбросит исключение ClassCastException во время выполнения, в то время как выражение List(1).asInstanceOf[List[String]] этого не сделает. В последнем примере, поскольку аргумент типа стирается во время компиляции, невозможно проверить, соответствуют ли содержимое списка требуемому типу.
- возвращает
объект-получатель.
- Определяющие классы
- Any
- Исключения
ClassCastException, если объект-получатель не является экземпляром стирания типаT0.
val bigDecimal: java.math.BigDecimal
def byteValue: Byte
Преобразует этот BigDecimal в Byte. Если BigDecimal слишком велик, чтобы поместиться в Byte, возвращаются только младшие 8 бит. Обратите внимание, что при этом преобразовании может быть потеряна информация о масштабе значения BigDecimal, а также может быть возвращён результат с противоположным знаком.
- Определяющие классы
- BigDecimal → ScalaNumericAnyConversions → Number
def charValue: Char
Преобразует этот BigDecimal в Char. Если BigDecimal слишком велик, чтобы поместиться в Char, возвращаются только младшие 16 бит. Обратите внимание, что при этом преобразовании может быть потеряна информация о масштабе значения BigDecimal, и результат всегда положительный.
def clone(): AnyRef
Создаёт копию объекта-получателя.
Значение метода clone по умолчанию зависит от платформы.
- возвращает
копию объекта-получателя.
def compare(that: BigDecimal): Int
Сравнивает этот BigDecimal со заданным BigDecimal
- Определяющие классы
- BigDecimal → Ordered
def compareTo(that: BigDecimal): Int
Результат сравнения this с операндом that.
- Определяющие классы
- Ordered → Comparable
def doubleValue: Double
Преобразует этот BigDecimal в Double. Если у этого BigDecimal слишком большая величина, чтобы быть представленным как double, он будет преобразован в Double.NEGATIVE_INFINITY или Double.POSITIVE_INFINITY, соответственно.
- Определяющие классы
- BigDecimal → ScalaNumericAnyConversions → Number
def ensuring(cond: (BigDecimal) => Boolean, msg: => Any): BigDecimal
- Неявный
- Этот член добавлен с помощью неявного преобразования из BigDecimal в Ensuring[BigDecimal], выполненного методом Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: (BigDecimal) => Boolean): BigDecimal
- Неявный
- Этот член добавлен с помощью неявного преобразования из BigDecimal в Ensuring[BigDecimal], выполненного методом Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean, msg: => Any): BigDecimal
- Неявный
- Этот член добавлен с помощью неявного преобразования из BigDecimal в Ensuring[BigDecimal], выполненного методом Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean): BigDecimal
- Неявный
- Этот член добавлен с помощью неявного преобразования из BigDecimal вEnsuring[BigDecimal] с помощью метода Ensuring в scala.Predef.
- Классы определений
- Ensuring
final def eq(arg0: AnyRef): Boolean
Проверяет, является ли аргумент (that) ссылкой на объект-получатель (this).
Метод eq реализует отношение эквивалентности на непустых экземплярах AnyRef и имеет три дополнительных свойства:
- Он согласован: для любых непустых экземпляров
xиyтипаAnyRefмногократные вызовыx.eq(y)последовательно возвращаютtrueили последовательно возвращаютfalse.Для любого непустого экземпляраxтипаAnyRef,x.eq(null)иnull.eq(x)возвращаютfalse. null.eq(null)возвращаетtrue.
При переопределении методов equals или hashCode важно обеспечить согласованность их поведения с равенством ссылок. Таким образом, если два объекта являются ссылками друг на друга (o1 eq o2), они должны быть равны друг другу (o1 == o2) и должны иметь одинаковое значение хэш-кода (o1.hashCode == o2.hashCode).
- возвращает
true, если аргумент является ссылкой на объект-получатель;falseв противном случае.
- Классы определений
- AnyRef
def equals(that: BigDecimal): Boolean
def equals(that: Any): Boolean
Сравнивает этот BigDecimal со значением на равенство. Там, где Float и Double расходятся, BigDecimal будет согласоваться со значением Double
- that
объект для сравнения с этим объектом на равенство.
- возвращает
true, если объект-получатель эквивалентен аргументу;falseв противном случае.
- Классы определений
- BigDecimal → AnyRef → Any
def finalize(): Unit
Вызывается сборщиком мусора для объекта-получателя, когда к объекту больше нет ссылок.
Подробности о том, когда и если вызывается метод finalize, а также о взаимодействии между finalize и нелокальными возвратами и исключениями, зависят от платформы.
def floatValue: Float
Преобразует этот BigDecimal в Float. Если у BigDecimal слишком большая величина, чтобы представить ее как float, она будет преобразована в Float.NEGATIVE_INFINITY или Float.POSITIVE_INFINITY соответственно.
- Классы определений
- BigDecimal → ScalaNumericAnyConversions → Number
def formatted(fmtstr: String): String
Возвращает строку, отформатированную в соответствии с данной строкой format. Форматные строки такие же, как и для String.format (см. java.lang.String.format).
- Неявный
- Этот член добавлен с помощью неявного преобразования из BigDecimal в StringFormat[BigDecimal] с помощью метода StringFormat в scala.Predef.
- Классы определений
- StringFormat
- Аннотации
- @inline()
final def getClass(): Class[_ <: AnyRef]
Возвращает представление класса во время выполнения объекта.
- возвращает
объект класса, соответствующий типу времени выполнения получателя.
def hashCode(): Int
Возвращает хэш-код для этого BigDecimal. Обратите внимание, что это не просто использование внутреннего java-объекта hashCode, потому что мы сравниваем BigDecimal с compareTo, что считает 2 == 2.00, тогда как в java они неравны с разными hashCode. Эти хэш-коды согласуются с BigInt для целых чисел до ~4934 цифр (диапазон 128-битных чисел с плавающей точкой IEEE). За пределами этого хэш-коды будут отличаться; это предотвращает явное представление формы BigInt для значений BigDecimal с большими показателями.
- возвращает
значение хэш-кода для этого объекта.
- Классы определений
- BigDecimal → AnyRef → Any
def intValue: Int
Преобразует этот BigDecimal в Int. Если BigDecimal слишком большой, чтобы поместиться в Int, возвращаются только младшие 32 бита. Обратите внимание, что при этом преобразовании может быть потеряна информация о величине значения BigDecimal, а также может быть возвращено значение с противоположным знаком.
- Классы определений
- BigDecimal → ScalaNumericAnyConversions → Number
def isBinaryDouble: Boolean
def isBinaryFloat: Boolean
def isDecimalDouble: Boolean
def isDecimalFloat: Boolean
def isExactDouble: Boolean
def isExactFloat: Boolean
final def isInstanceOf[T0]: Boolean
Проверка, является ли динамический тип объекта-получателя T0.
Обратите внимание, что результат проверки зависит от правил стирания Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, а выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, так как аргумент типа стирается во время компиляции, невозможно проверить, соответствуют ли содержимое списка указанному типу.
- возвращает
true, если объект-получатель является экземпляром стираемого типаT0;falseв противном случае.
- Классы определений
- Any
def isValidByte: Boolean
Возвращает true, если у этого числа нет дробной части и оно находится в диапазоне от scala.Byte MinValue до MaxValue; в противном случае возвращает false.
- Классы определений
- BigDecimal → ScalaNumericAnyConversions
def isValidChar: Boolean
Возвращает true, если у этого числа нет дробной части и оно находится в диапазоне от scala.Char MinValue до MaxValue; в противном случае возвращает false.
- Классы определений
- BigDecimal → ScalaNumericAnyConversions
def isValidInt: Boolean
Возвращает true, если у этого числа нет дробной части и оно находится в диапазоне от scala.Int MinValue до MaxValue; в противном случае возвращает false.
- Классы определений
- BigDecimal → ScalaNumericAnyConversions
def isValidLong: Boolean
def isValidShort: Boolean
Возвращает true, если у этого числа нет дробной части и оно находится в диапазоне от scala.Short MinValue до MaxValue; в противном случае возвращает false.
- Классы определений
- BigDecimal → ScalaNumericAnyConversions
def isWhole: Boolean
- возвращает
true, если число не имеет дробной части;falseв противном случае.
- Классы определений
- BigDecimal → ScalaNumericAnyConversions → ScalaNumber
def longValue: Long
Преобразует BigDecimal в Long. Если BigDecimal слишком велик для Long, возвращаются только младшие 64 бита. Обратите внимание, что при этом преобразовании может быть потеряна информация о величине значения BigDecimal, а также может быть возвращён результат с противоположным знаком.
- Классы определений
- BigDecimal → ScalaNumericAnyConversions → Number
def max(that: BigDecimal): BigDecimal
val mc: MathContext
def min(that: BigDecimal): BigDecimal
final def ne(arg0: AnyRef): Boolean
Эквивалентно !(this eq that).
- возвращает
true, если аргумент не является ссылкой на объект-получатель;falseв противном случае.
- Классы определений
- AnyRef
final def notify(): Unit
Разбуживает один поток, ожидавщий монитор объекта-получателя.
- Классы определений
- AnyRef
- Аннотации
- @native()
- Примечание
не задано SLS как члена AnyRef
final def notifyAll(): Unit
Разбуждает все потоки, ожидающие монитор объекта-приемника.
- Definition Classes
- AnyRef
- Annotations
- @native()
- Примечание
не указано SLS как член AnyRef
def pow(n: Int): BigDecimal
def precision: Int
def quot(that: BigDecimal): BigDecimal
def remainder(that: BigDecimal): BigDecimal
def round(mc: MathContext): BigDecimal
def rounded: BigDecimal
def scale: Int
def setScale(scale: Int, mode: RoundingMode): BigDecimal
def setScale(scale: Int): BigDecimal
def shortValue: Short
Преобразует этот BigDecimal в Short. Если BigDecimal слишком велик для размещения в Short, возвращаются только младшие 16 битов. Обратите внимание, что при этом преобразовании может потеряться информация о величине значения BigDecimal, а также может быть возвращен результат с противоположным знаком.
- Definition Classes
- BigDecimal → ScalaNumericAnyConversions → Number
def sign: BigDecimal
def signum: Int
final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
def to(end: BigDecimal, step: BigDecimal): Inclusive[scala.BigDecimal]
def to(end: BigDecimal): Partial[BigDecimal, Inclusive[BigDecimal]]
def toBigInt: BigInt
def toBigIntExact: Option[BigInt]
def toByte: Byte
Возвращает значение этого объекта как scala.Byte. Это может включать округление или усечение.
- Definition Classes
- ScalaNumericAnyConversions
def toByteExact: Byte
Преобразует этот BigDecimal в scala.Byte, проверяя потерю информации. Если у этого BigDecimal есть ненулевая дробная часть или он выходит за пределы возможного диапазона для scala.Byte результата, выбрасывается java.lang.ArithmeticException.
def toChar: Char
Возвращает значение этого объекта как scala.Char. Это может включать округление или усечение.
- Definition Classes
- ScalaNumericAnyConversions
def toDouble: Double
Возвращает значение этого объекта как scala.Double. Это может включать округление или усечение.
- Definition Classes
- ScalaNumericAnyConversions
def toFloat: Float
Возвращает значение этого объекта как scala.Float. Может потребоваться округление или усечение.
- Definition Classes
- ScalaNumericAnyConversions
def toInt: Int
Возвращает значение этого объекта как scala.Int. Может потребоваться округление или усечение.
- Definition Classes
- ScalaNumericAnyConversions
def toIntExact: Int
def toLong: Long
Возвращает значение этого объекта как scala.Long. Может потребоваться округление или усечение.
- Definition Classes
- ScalaNumericAnyConversions
def toLongExact: Long
Преобразует это BigDecimal в scala.Long, проверяя потерю информации. Если у этого BigDecimal есть ненулевая дробная часть или значение выходит за пределы диапазона для scala.Long, то выбрасывается java.lang.ArithmeticException.
def toShort: Short
Возвращает значение этого объекта как scala.Short. Может потребоваться округление или усечение.
- Definition Classes
- ScalaNumericAnyConversions
def toShortExact: Short
Преобразует это BigDecimal в scala.Short, проверяя потерю информации. Если у этого BigDecimal есть ненулевая дробная часть или значение выходит за пределы диапазона для scala.Short, то выбрасывается java.lang.ArithmeticException.
def toString(): String
Возвращает десятичное строковое представление этого BigDecimal.
- returns
строковое представление объекта.
- Definition Classes
- BigDecimal → AnyRef → Any
def ulp: BigDecimal
def unary_-: BigDecimal
def underlying(): java.math.BigDecimal
- Definition Classes
- BigDecimal → ScalaNumericConversions → ScalaNumber
def unifiedPrimitiveEquals(x: Any): Boolean
Должно вызываться только после исключения всех известных типов, не являющихся примитивами. Этот метод не будет перенаправлен в другое место после проверки на примитивы, чтобы избежать бесконечной рекурсии между equals и этим для неизвестных вариантов «Number».
Кроме того, это должно вызываться только в том случае, если числовой тип рад быть преобразован в Long, Float и Double. Если, например, BigInt значительно больше диапазона Long отправлен сюда, он заявит о равенстве с тем Long, который остался в его нижних 64 битах. Или BigDecimal с большей точностью, чем может содержать Double: то же самое. Нет способа, учитывая доступный интерфейс, предотвратить эту ошибку.
- Attributes
- protected
- Definition Classes
- ScalaNumericAnyConversions
def unifiedPrimitiveHashcode: Int
- Attributes
- protected
- Definition Classes
- ScalaNumericAnyConversions
def until(end: BigDecimal, step: BigDecimal): Exclusive[scala.BigDecimal]
def until(end: BigDecimal): Partial[BigDecimal, Exclusive[BigDecimal]]
Создает частично построенный NumericRange[BigDecimal] в диапазоне [start;end), где start — целевое значение BigDecimal. Шаг должен быть указан с помощью метода «by» возвращаемого объекта, чтобы получить полностью построенный диапазон. Например:
val partial = BigDecimal(1.0) to 2.0 // not usable yet val range = partial by 0.01 // now a NumericRange val range2 = BigDecimal(0) to 1.0 by 0.01 // all at once of course is fine too
- end
конечное значение диапазона (исключительно)
- returns
частично построенный NumericRange
Члены со скрытым неявным значением
def +(other: String): String
- Неявный
- Этот член добавлен неявным преобразованием из BigDecimal в any2stringadd[BigDecimal] с помощью метода any2stringadd в scala.Predef.
- Скрытие
- Этот неявный унаследованный член скрывается одним или несколькими членами в этом классе.
Для доступа к этому члену можно использовать приведение типа:(bigDecimal: any2stringadd[BigDecimal]).+(other)
- Определяющие классы
- any2stringadd
def <(that: BigDecimal): Boolean
Возвращает true, если this меньше, чем that
- Неявный
- Этот член добавлен неявным преобразованием из BigDecimal в Ordered[BigDecimal] с помощью метода orderingToOrdered в scala.math.Ordered.
- Скрытие
- Этот неявный унаследованный член скрывается одним или несколькими членами в этом классе.
Для доступа к этому члену можно использовать приведение типа:(bigDecimal: Ordered[BigDecimal]).<(that)
- Определяющие классы
- Ordered
def <=(that: BigDecimal): Boolean
Возвращает true, если this меньше или равно that.
- Неявный
- Этот член добавлен неявным преобразованием из BigDecimal в Ordered[BigDecimal] с помощью метода orderingToOrdered в scala.math.Ordered.
- Скрытие
- Этот неявный унаследованный член скрывается одним или несколькими членами в этом классе.
Для доступа к этому члену можно использовать приведение типа:(bigDecimal: Ordered[BigDecimal]).<=(that)
- Определяющие классы
- Ordered
def >(that: BigDecimal): Boolean
Возвращает true, если this больше, чем that.
- Неявный
- Этот член добавлен неявным преобразованием из BigDecimal в Ordered[BigDecimal] с помощью метода orderingToOrdered в scala.math.Ordered.
- Скрытие
- Этот неявный унаследованный член скрывается одним или несколькими членами в этом классе.
Для доступа к этому члену можно использовать приведение типа:(bigDecimal: Ordered[BigDecimal]).>(that)
- Определяющие классы
- Ordered
def >=(that: BigDecimal): Boolean
Возвращает true, если this больше или равно that.
- Неявный
- Этот член добавлен неявным преобразованием из BigDecimal в Ordered[BigDecimal] с помощью метода orderingToOrdered в scala.math.Ordered.
- Скрытие
- Этот неявный унаследованный член скрывается одним или несколькими членами в этом классе.
Для доступа к этому члену можно использовать приведение типа:(bigDecimal: Ordered[BigDecimal]).>=(that)
- Определяющие классы
- Ordered
def compare(that: BigDecimal): Int
Результат сравнения this с операндом that.
Реализуйте этот метод, чтобы определить, как будут сортироваться экземпляры A.
Возвращает x, где:
x < 0 когда this < that
x == 0 когда this == that
x > 0 когда this > that
- Неявный
- Этот член добавлен неявным преобразованием из BigDecimal в Ordered[BigDecimal] с помощью метода orderingToOrdered в scala.math.Ordered.
- Скрытие
- Этот неявный унаследованный член скрывается одним или несколькими членами в этом классе.
Для доступа к этому члену можно использовать приведение типа:(bigDecimal: Ordered[BigDecimal]).compare(that)
- Определяющие классы
- Ordered
def compareTo(that: BigDecimal): Int
Результат сравнения this с операндом that.
- Неявный
- Этот член добавлен неявным преобразованием из BigDecimal в Ordered[BigDecimal] с помощью метода orderingToOrdered в scala.math.Ordered.
- Затенение
- Этот неявный унаследованный член затеняется одним или несколькими членами в этом классе.
Для доступа к этому члену можно использовать приведение типа:(bigDecimal: Ordered[BigDecimal]).compareTo(that)
- Определяющие классы
- Ordered → Comparable
© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.13.0/scala/math/BigDecimal.html
BigDecimalпредставляет десятичные числа с плавающей точкой произвольной точности. По умолчанию точность примерно соответствует точности чисел с плавающей точкой IEEE 128-бит (34 десятичных знака,HALF_EVENрежим округления). В пределах диапазона чисел IEEE binary128,BigDecimalбудут совпадать сBigIntкак для равенства, так и для хэш-кодов (и будут совпадать с примитивными типами). За пределами этого диапазона—числа с более чем 4934 цифрами при полном представлении—hashCodeBigIntиBigDecimalразрешается расходиться из-за сложности эффективного вычисления десятичного представления вBigDecimalи двоичного представления вBigInt.При создании
BigDecimalизDoubleилиFloatнеобходимо быть внимательными, так как двоичное дробное представлениеDoubleиFloatнелегко преобразуется в десятичное представление. Доступны три явных схемы преобразования.BigDecimal.decimalпреобразует число с плавающей точкой в десятичное текстовое представление и строитBigDecimalна основе этого.BigDecimal.binaryрасширит двоичную дробь до запрошенной или по умолчанию точности.BigDecimal.exactрасширит двоичную дробь до полного числа цифр, тем самым создавая точное десятичное значение, соответствующее двоичной дроби этого числа с плавающей точкой.BigDecimalравенство совпадает с десятичным разложениемDouble:BigDecimal.decimal(0.1) == 0.1. Обратите внимание, что с0.1f != 0.1это не так дляFloat. Вместо этого,0.1f == BigDecimal.decimal((0.1f).toDouble).Чтобы проверить, можно ли преобразовать число
BigDecimalвDoubleилиFloatи обратно без потери информации, используя один из этих методов, используйтеisDecimalDouble,isBinaryDoubleилиisExactDoubleили соответствующиеFloatверсии. Обратите внимание, чтоBigInt'sisValidDoubleбудет совпадать сisExactDouble, а неisDecimalDouble, используемым по умолчанию.BigDecimalиспользует десятичное представление двоичных чисел с плавающей точкой для определения равенства и хэш-кодов. Это дает разные результаты, чем преобразование междуLongиDoubleзначениями, где используется точная форма. Как всегда, поскольку числа с плавающей точкой имеют потери, рекомендуется быть внимательным при предположении, что тождество будет сохраняться при нескольких преобразованиях.BigDecimalподдерживаетMathContext, определяющий округление, применяемое к определённым вычислениям. В большинстве случаев значениеBigDecimalтакже округляется до точности, указаннойMathContext. Чтобы создатьBigDecimalс другой точностью, чем егоMathContext, используйтеnew BigDecimal(new java.math.BigDecimal(...), mc). Округление будет применяться к тем математическим операциям, которые могут значительно изменить количество цифр в полном представлении, а именно умножению, делению и возведению в степень.MathContextлевого аргумента всегда определяет степень округления, если таковая имеется, и является тем, который распространяется через арифметические операции, не применяющие округление сами.