Spec-Zone.ru › Scala 2.13 Library

Класс scala.math.BigDecimal

Компаньон-объект объект BigDecimal

final класс BigDecimal extends ScalaNumber с ScalaNumericConversions с Serializable с Ordered[BigDecimal]

BigDecimal представляет десятичные числа с плавающей точкой произвольной точности. По умолчанию точность примерно соответствует точности чисел с плавающей точкой IEEE 128-бит (34 десятичных знака, HALF_EVEN режим округления). В пределах диапазона чисел IEEE binary128, BigDecimal будут совпадать с BigInt как для равенства, так и для хэш-кодов (и будут совпадать с примитивными типами). За пределами этого диапазона—числа с более чем 4934 цифрами при полном представлении—hashCode BigInt и 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's isValidDouble будет совпадать с isExactDouble, а не isDecimalDouble, используемым по умолчанию.

BigDecimal использует десятичное представление двоичных чисел с плавающей точкой для определения равенства и хэш-кодов. Это дает разные результаты, чем преобразование между Long и Double значениями, где используется точная форма. Как всегда, поскольку числа с плавающей точкой имеют потери, рекомендуется быть внимательным при предположении, что тождество будет сохраняться при нескольких преобразованиях.

BigDecimal поддерживает MathContext, определяющий округление, применяемое к определённым вычислениям. В большинстве случаев значение BigDecimal также округляется до точности, указанной MathContext. Чтобы создать BigDecimal с другой точностью, чем его MathContext, используйте new BigDecimal(new java.math.BigDecimal(...), mc). Округление будет применяться к тем математическим операциям, которые могут значительно изменить количество цифр в полном представлении, а именно умножению, делению и возведению в степень. MathContext левого аргумента всегда определяет степень округления, если таковая имеется, и является тем, который распространяется через арифметические операции, не применяющие округление сами.

Источник
BigDecimal.scala
Линейные надтипы
Ordered[BigDecimal], Comparable[BigDecimal], ScalaNumericConversions, ScalaNumericAnyConversions, ScalaNumber, Number, java.io.Serializable, AnyRef, Any

Конструкторы экземпляров

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 по умолчанию зависит от платформы.

возвращает

копию объекта-получателя.

Атрибуты
protected[java.lang]
Определяющие классы
AnyRef
Аннотации
@throws(classOf[java.lang.CloneNotSupportedException]) @native()
Примечание

не указано SLS в качестве члена AnyRef

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 и нелокальными возвратами и исключениями, зависят от платформы.

Атрибуты
protected[java.lang]
Классы определений
AnyRef
Аннотации
@throws(classOf[java.lang.Throwable])
Примечание

не указано в SLS как член AnyRef

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]

Возвращает представление класса во время выполнения объекта.

возвращает

объект класса, соответствующий типу времени выполнения получателя.

Классы определений
AnyRef → Any
Аннотации
@native()

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

Преобразует это BigDecimal в scala.Int, проверяя потерю информации. Если у этого BigDecimal есть ненулевая дробная часть или значение выходит за пределы диапазона для scala.Int, то выбрасывается java.lang.ArithmeticException.

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

final def wait(): Unit

Описание классов
AnyRef
Аннотации
@throws(classOf[java.lang.InterruptedException])

final def wait(arg0: Long, arg1: Int): Unit

Описание классов
AnyRef
Аннотации
@throws(classOf[java.lang.InterruptedException])

final def wait(arg0: Long): Unit

Описание классов
AnyRef
Аннотации
@throws(classOf[java.lang.InterruptedException]) @native()

Члены со скрытым неявным значением

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API