Class BigNumber

  • All Implemented Interfaces:
    java.io.Serializable

    public final class BigNumber
    extends java.lang.Number
    Extends BigDecimal to allow a number to be positive infinity, negative infinity and not-a-number. This provides compatibility with float and double types.
    Author:
    Tobias Downer
    See Also:
    Serialized Form
    • Field Detail

      • NEGATIVE_INFINITY

        public static final BigNumber NEGATIVE_INFINITY
        Statics for negative infinity, positive infinity and NaN.
      • POSITIVE_INFINITY

        public static final BigNumber POSITIVE_INFINITY
      • BIG_NUMBER_ZERO

        public static final BigNumber BIG_NUMBER_ZERO
        Statics for 0 and 1.
      • BIG_NUMBER_ONE

        public static final BigNumber BIG_NUMBER_ONE
    • Method Detail

      • canBeRepresentedAsLong

        public boolean canBeRepresentedAsLong()
        Returns true if this BigNumber can be represented by a 64-bit long (has no scale).
      • canBeRepresentedAsInt

        public boolean canBeRepresentedAsInt()
        Returns true if this BigNumber can be represented by a 32-bit int (has no scale).
      • getScale

        public int getScale()
        Returns the scale of this number, or -1 if the number has no scale (if it -inf, +inf or NaN).
      • getState

        public byte getState()
        Returns the state of this number. Returns either 1 which indicates negative infinity, 2 which indicates positive infinity, or 3 which indicates NaN.
      • toByteArray

        public byte[] toByteArray()
        Returns this number as a byte array (unscaled).
      • toString

        public java.lang.String toString()
        Returns this big number as a string.
        Overrides:
        toString in class java.lang.Object
      • doubleValue

        public double doubleValue()
        Returns this big number as a double.
        Specified by:
        doubleValue in class java.lang.Number
      • floatValue

        public float floatValue()
        Returns this big number as a float.
        Specified by:
        floatValue in class java.lang.Number
      • longValue

        public long longValue()
        Returns this big number as a long.
        Specified by:
        longValue in class java.lang.Number
      • intValue

        public int intValue()
        Returns this big number as an int.
        Specified by:
        intValue in class java.lang.Number
      • shortValue

        public short shortValue()
        Returns this big number as a short.
        Overrides:
        shortValue in class java.lang.Number
      • byteValue

        public byte byteValue()
        Returns this big number as a byte.
        Overrides:
        byteValue in class java.lang.Number
      • asBigDecimal

        public java.math.BigDecimal asBigDecimal()
        Returns the big number as a BigDecimal object. Note that this throws an arith error if this number represents NaN, +Inf or -Inf.
      • compareTo

        public int compareTo​(BigNumber number)
        Compares this BigNumber with the given BigNumber. Returns 0 if the values are equal, >0 if this is greater than the given value, and < 0 if this is less than the given value.
      • equals

        public boolean equals​(java.lang.Object ob)
        The equals comparison uses the BigDecimal 'equals' method to compare values. This means that '0' is NOT equal to '0.0' and '10.0' is NOT equal to '10.00'. Care should be taken when using this method.
        Overrides:
        equals in class java.lang.Object
      • signum

        public int signum()
      • setScale

        public BigNumber setScale​(int d,
                                  int round_enum)
      • fromDouble

        public static BigNumber fromDouble​(double value)
        Creates a BigNumber from a double.
      • fromFloat

        public static BigNumber fromFloat​(float value)
        Creates a BigNumber from a float.
      • fromLong

        public static BigNumber fromLong​(long value)
        Creates a BigNumber from a long.
      • fromInt

        public static BigNumber fromInt​(int value)
        Creates a BigNumber from an int.
      • fromString

        public static BigNumber fromString​(java.lang.String str)
        Creates a BigNumber from a string.
      • fromBigDecimal

        public static BigNumber fromBigDecimal​(java.math.BigDecimal val)
        Creates a BigNumber from a BigDecimal.
      • fromData

        public static BigNumber fromData​(byte[] buf,
                                         int scale,
                                         byte state)
        Creates a BigNumber from the given data.