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 exact BigDecimal
representation), but in practice this becomes intractable for many small JSON numbers (e.g.
"1e2147483648" cannot be directly parsed as a BigDecimal).
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.
Returns -1 if it is less than 0, +1 if it is greater than 0, and 0 if it is
equal to 0. Note that this follows the behavior of scala.Double for
negative zero (returning 0).
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.