c

argonaut

JsonDecimal

case class JsonDecimal extends JsonNumber with Product with Serializable

A JsonDecimal represents and valid JSON number as a String. Unfortunately, there is no type in the Scala standard library which can represent all valid JSON decimal numbers, since the exponent may be larger than an Int. Such a number can still be round tripped (parser to printer). We lazily parse the string to a BigDecimal or a Double on demand.

Source
JsonNumber.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. JsonDecimal
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. JsonNumber
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def asJson: Json
    Definition Classes
    JsonNumber
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(that: Any): Boolean
    Definition Classes
    JsonNumber → AnyRef → Any
  9. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. def hashCode(): Int
    Definition Classes
    JsonNumber → AnyRef → Any
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. def normalized: (BigInt, BigDecimal)

    Returns a *normalized* version of this Decimal number.

    Returns a *normalized* version of this Decimal number. Since BigDecimal cannot represent all valid JSON value exactly, due to the exponent being limited to an Int, this method let's us get a normalized number that can be used to compare for equality.

    The 1st value (BigInt) is the exponent used to scale the 2nd value (BigDecimal) back to the original value represented by this number. The 2nd BigDecimal will always either be 0 or a number with exactly 1 decimal digit to the right of the decimal point. If the 2nd value is 0, then the exponent will always be 0 as well.

  15. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  18. lazy val toBigDecimal: BigDecimal

    Returns this number as a BigDecimal.

    Returns this number as a BigDecimal.

    Definition Classes
    JsonDecimalJsonNumber
  19. def toBigInt: Option[BigInt]

    Returns this number as a BigInt, only if this number is an integer.

    Returns this number as a BigInt, only if this number is an integer.

    Definition Classes
    JsonNumber
  20. def toByte: Option[Byte]

    Returns this number as a Byte, only if this number is a valid Byte.

    Returns this number as a Byte, only if this number is a valid Byte.

    Definition Classes
    JsonNumber
  21. lazy val toDouble: Option[Double]

    Returns this number as a Double, only if this number can be represented as a Double.

    Returns this number as a Double, only if this number can be represented as a Double.

    Definition Classes
    JsonNumber
  22. lazy val toFloat: Option[Float]

    Returns this number as a Float, only if this number can be represented as a Float.

    Returns this number as a Float, only if this number can be represented as a Float.

    Definition Classes
    JsonNumber
  23. def toInt: Option[Int]

    Returns this number as a Int, only if this number is a valid Int.

    Returns this number as a Int, only if this number is a valid Int.

    Definition Classes
    JsonNumber
  24. def toLong: Option[Long]

    Returns this number as a Long, only if this number is a valid Long.

    Returns this number as a Long, only if this number is a valid Long.

    Definition Classes
    JsonDecimalJsonNumber
  25. def toShort: Option[Short]

    Returns this number as a Short, only if this number is a valid Short.

    Returns this number as a Short, only if this number is a valid Short.

    Definition Classes
    JsonNumber
  26. def truncateToBigInt: Option[BigInt]

    Truncates the number to a BigInt.

    Truncates the number to a BigInt. Truncation means that we round the real number towards 0 to the closest BigInt.

    Truncation fails for numbers whose decimal representation contains more than 2 ^ 18 digits, since creating BigInt values for these numbers is computationally expensive.

    Definition Classes
    JsonNumber
  27. def truncateToByte: Byte

    Truncates the number to a Byte.

    Truncates the number to a Byte. Truncation means that we round the real number towards 0 to the closest, valid Byte. So, if the number is 1e99, then this will return Byte.MaxValue.

    Definition Classes
    JsonNumber
  28. def truncateToDouble: Double

    Truncates this number to the best Double approximation to this number.

    Truncates this number to the best Double approximation to this number. Anything over Double.MaxValue gets rounded to Double.PositiveInfinity and anything below Double.MinValue gets rounded to Double.NegativeInfinity.

    Definition Classes
    JsonNumber
  29. def truncateToFloat: Float

    Truncates this number to the best Float approximation to this number.

    Truncates this number to the best Float approximation to this number. Anything over Float.MaxValue gets rounded to Float.PositiveInfinity and anything below Float.MinValue gets rounded to Float.NegativeInfinity.

    Definition Classes
    JsonNumber
  30. def truncateToInt: Int

    Truncates the number to a Int.

    Truncates the number to a Int. Truncation means that we round the real number towards 0 to the closest, valid Int. So, if the number is 1e99, then this will return Int.MaxValue.

    Definition Classes
    JsonNumber
  31. def truncateToLong: Long

    Truncates the number to a Long.

    Truncates the number to a Long. Truncation means that we round the real number towards 0 to the closest, valid Long. So, if the number is 1e99, then this will return Long.MaxValue.

    Definition Classes
    JsonNumber
  32. def truncateToShort: Short

    Truncates the number to a Short.

    Truncates the number to a Short. Truncation means that we round the real number towards 0 to the closest, valid Short. So, if the number is 1e99, then this will return Short.MaxValue.

    Definition Classes
    JsonNumber
  33. val value: String
  34. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  35. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  36. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from JsonNumber

Inherited from AnyRef

Inherited from Any

Ungrouped