Construct a JSON value that is a number.
Construct a JSON value that is a number.
Note: NaN, +Infinity and -Infinity are not valid json.
Construct a JSON value that is a number.
Construct a JSON value that is a number. Transforming NaN, +Infinity and -Infinity to jNull. This matches the behaviour of most browsers, but is a lossy operation as you can no longer distinguish between NaN and Infinity.
Construct a JSON value that is a number.
Construct a JSON value that is a number. Transforming NaN, +Infinity and -Infinity to their string implementations.
This is an argonaut specific transformation that allows all
doubles to be encoded without losing information, but aware
interoperability is unlikely without custom handling of
these values. See also jNumber and jNumberOrNull.
Returns true iff this number wraps a Double and it is
PositiveInfinity or NegativeInfinity.
Returns true iff this number wraps a Double and it is
PositiveInfinity or NegativeInfinity.
Returns true iff this number wraps a Double and it is NaN.
Returns true iff this number wraps a Double and it is NaN.
Returns true if this is a valid real number (ie.
Returns true if this is a valid real number (ie. !(isNaN || isInfinity)).
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.
Returns this number as a BigDecimal.
Returns this number as a BigDecimal.
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.
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.
Converts this number to the best Double approximation to this number.
Converts 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.
Converts this number to the best Float approximation to this number.
Converts 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.
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.
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.
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.
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.
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.
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.
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.
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.
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 aBigDecimalor aDoubleon demand.