Класс scala.math.BigDecimal
Компаньон объект BigDecimal
final класс BigDecimal extends ScalaNumber с ScalaNumericConversions с Serializable с Ordered[BigDecimal]
Конструкторы экземпляров
новый BigDecimal(bigDecimal: java.math.BigDecimal)
новый BigDecimal(bigDecimal: java.math.BigDecimal, mc: MathContext)
Члены-значения
final def !=(arg0: Any): Boolean
Проверка двух объектов на неравенство.
- возвращает
trueесли !(this == that), в противном случае false.
- Definition Classes
- AnyRef → Any
final def ##(): Int
Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для чисел возвращается значение хэша, согласованное с равенством значений: если два экземпляра типа значения сравниваются как true, то ## вернёт одинаковое значение хэша для каждого из них. Для null возвращается хэш-код, где null.hashCode вызывает NullPointerException.
- возвращает
значение хэша, согласованное с ==
- Definition Classes
- 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.
- Definition Classes
- ArrowAssoc
- Аннотации
- @inline()
def /(that: BigDecimal): BigDecimal
def /%(that: BigDecimal): (BigDecimal, BigDecimal)
Деление и остаток — возвращает кортеж, содержащий результат divideToIntegralValue и остаток. Вычисление точное: округление не применяется.
def <(that: BigDecimal): Boolean
Возвращает true, если this меньше that
- Definition Classes
- Ordered
def <=(that: BigDecimal): Boolean
Возвращает true, если this меньше или равно that.
- Definition Classes
- Ordered
final def ==(arg0: Any): Boolean
Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
- возвращает
trueесли объект-получатель эквивалентен аргументу;falseв противном случае.
- Definition Classes
- AnyRef → Any
def >(that: BigDecimal): Boolean
Возвращает true, если this больше that.
- Definition Classes
- Ordered
def >=(that: BigDecimal): Boolean
Возвращает true, если this больше или равно that.
- Definition Classes
- 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]] — нет. В последнем примере, так как аргумент типа стирается во время компиляции, нельзя проверить, соответствуют ли элементы списка требуемому типу.
- возвращает
объект-получатель.
- Definition Classes
- Any
- Исключения
ClassCastExceptionесли объект-получатель не является экземпляром стирания типаT0.
val bigDecimal: java.math.BigDecimal
def byteValue(): Byte
Преобразует этот BigDecimal в Byte. Если BigDecimal слишком большой для Byte, возвращаются только младшие 8 бит. Обратите внимание, что при этом преобразовании может потеряться информация о величине значения BigDecimal, а также может быть возвращён результат с противоположным знаком.
- Definition Classes
- BigDecimal → ScalaNumericAnyConversions → Number
def charValue: Char
Преобразует этот BigDecimal в Char. Если BigDecimal слишком большой для Char, возвращаются только младшие 16 бит. Обратите внимание, что при этом преобразовании может потеряться информация о величине значения BigDecimal, а также всегда возвращается положительный результат.
def clone(): AnyRef
Создаёт копию объекта-приёмника.
По умолчанию реализация метода clone зависит от платформы.
- returns
копия объекта-приёмника.
def compare(that: BigDecimal): Int
Сравнивает этот BigDecimal с указанным BigDecimal
- Definition Classes
- BigDecimal → Ordered
def compareTo(that: BigDecimal): Int
Результат сравнения this с операндом that.
- Definition Classes
- Ordered → Comparable
def doubleValue(): Double
Преобразует этот BigDecimal в Double. Если у этого BigDecimal слишком большая величина для представления в формате double, он будет преобразован в Double.NEGATIVE_INFINITY или Double.POSITIVE_INFINITY соответственно.
- Definition Classes
- BigDecimal → ScalaNumericAnyConversions → Number
def ensuring(cond: (BigDecimal) ⇒ Boolean, msg: ⇒ Any): BigDecimal
- Implicit
- Этот член добавлен неявным преобразованием из BigDecimal в Ensuring[BigDecimal] с помощью метода Ensuring в scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: (BigDecimal) ⇒ Boolean): BigDecimal
- Implicit
- Этот член добавлен неявным преобразованием из BigDecimal в Ensuring[BigDecimal] с помощью метода Ensuring в scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: Boolean, msg: ⇒ Any): BigDecimal
- Implicit
- Этот член добавлен неявным преобразованием из BigDecimal в Ensuring[BigDecimal] с помощью метода Ensuring в scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: Boolean): BigDecimal
- Implicit
- Этот член добавлен неявным преобразованием из BigDecimal в Ensuring[BigDecimal] с помощью метода Ensuring в scala.Predef.
- Definition Classes
- Ensuring
final def eq(arg0: AnyRef): Boolean
Проверяет, является ли аргумент (that) ссылкой на объект-получатель (this).
Метод eq реализует отношение эквивалентности на не-null экземплярах AnyRef, и обладает тремя дополнительными свойствами:
-
Он согласован: для любых не-null экземпляров
x и y типа AnyRef, многократные вызовы x.eq(y) последовательно возвращают true или последовательно возвращают false. Для любого не-null экземпляра x типа AnyRef, x.eq(null) и null.eq(x) возвращают false.
null.eq(null) возвращает true. При переопределении методов equals или hashCode важно обеспечить, чтобы их поведение соответствовало равенству ссылок. Поэтому, если два объекта являются ссылками друг на друга (o1 eq o2), они должны быть равны друг другу (o1 == o2) и должны иметь одинаковое значение хэша (o1.hashCode == o2.hashCode).
- returns
trueесли аргумент является ссылкой на объект-получатель;falseв противном случае.
- Definition Classes
- AnyRef
def equals(that: BigDecimal): Boolean
def equals(that: Any): Boolean
Сравнивает этот BigDecimal со значением на равенство. Где Float и Double расходятся, BigDecimal будет согласовываться со значением Double
- that
объект для сравнения с этим объектом на равенство.
- returns
trueесли объект-получатель эквивалентен аргументу;falseв противном случае.
- Definition Classes
- BigDecimal → AnyRef → Any
def finalize(): Unit
Вызывается сборщиком мусора для объекта-получателя, когда к объекту больше нет ссылок.
Подробности о том, когда и если вызывается метод finalize, а также взаимодействие между finalize и нелокальными возвратами и исключениями, зависят от платформы.
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
- Note
не указано в SLS как член AnyRef
def floatValue(): Float
Преобразует этот BigDecimal в Float. Если у этого BigDecimal слишком большая величина для представления как float, он будет преобразован в Float.NEGATIVE_INFINITY или Float.POSITIVE_INFINITY соответственно.
- Definition Classes
- BigDecimal → ScalaNumericAnyConversions → Number
def formatted(fmtstr: String): String
Возвращает строку, отформатированную в соответствии с заданной строкой format. Строки формата аналогичны строкам формата String.format (@см java.lang.String.format).
- Implicit
- Этот член добавлен неявным преобразованием из BigDecimal в StringFormat[BigDecimal] с помощью метода StringFormat в scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
final def getClass(): Class[_]
Возвращает представление класса во время выполнения объекта.
- returns
объект класса, соответствующий типу времени выполнения получателя.
def hashCode(): Int
Возвращает код хэша для этого BigDecimal. Обратите внимание, что это не просто использование базового объекта java hashCode, так как мы сравниваем BigDecimal со compareTo, что делает 2 == 2.00, в то время как в java эти значения не равны с неравными hashCode. Эти коды хэша согласуются с BigInt для целых чисел до ~4934 цифр (диапазон IEEE 128-битного числа с плавающей точкой). За пределами этого коды хэша будут различаться; это предотвращает явное представление формы BigInt для BigDecimal значений с большими показателями.
- returns
значение кода хэша для этого объекта.
- Definition Classes
- BigDecimal → AnyRef → Any
def intValue(): Int
Преобразует этот BigDecimal в Int. Если BigDecimal слишком велик, чтобы уместиться в Int, возвращаются только младшие 32 бита. Обратите внимание, что это преобразование может потерять информацию о величине значения BigDecimal, а также вернуть результат с противоположным знаком.
- Definition Classes
- 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
Разбуживает все потоки, ожидающие монитор объекта-приемника.
- Классы определений
- AnyRef
- Аннотации
- @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 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 → ScalaNumericAnyConversions → 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
final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
final def wait(arg0: Long): Unit
def →[B](y: B): (BigDecimal, B)
- Неявный
- Этот член добавлен неявным преобразованием из BigDecimal в ArrowAssoc[BigDecimal] с помощью метода ArrowAssoc в scala.Predef.
- Definition Classes
- ArrowAssoc
Затененные неявные члены значения
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.12.9/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левого аргумента всегда определяет степень округления, если таковая имеется, и является тем, что распространяется через арифметические операции, которые сами не применяют округление.