Convert to a java.math.BigDecimal
if the scale
is within the range of scala.Int.
Convert to a java.math.BigInteger
if this is a sufficiently small whole number.
Convert to the nearest scala.Double.
Convert to a scala.Long if this is a valid Long
value.
Convert to the nearest scala.Long.
Convert to a java.math.BigInteger
if this is a sufficiently small whole number.
Convert to a java.math.BigInteger
if this is a sufficiently small whole number.
The maximum number of digits is somewhat arbitrarily set at 2^18 digits, since larger values
may require excessive processing power. Larger values may be converted to BigInteger
with
toBigIntegerWithMaxDigits or via toBigDecimal.
Represents a large decimal number.
In theory
BigDecimal
can represent a very large range of valid JSON numbers (in most cases if a JSON number string can fit in memory, it's possible to construct an exactBigDecimal
representation), but in practice this becomes intractable for many small JSON numbers (e.g. "1e2147483648" cannot be directly parsed as aBigDecimal
).This type makes it possible to represent much, much larger numbers efficiently (although it doesn't support many operations on these values). It also makes it possible to distinguish between positive and negative zeros (unlike
BigDecimal
), which may be useful in some applications.