Class BigNumber

java.lang.Object
java.lang.Number
com.mckoi.util.BigNumber
All Implemented Interfaces:
Serializable

public final class BigNumber extends 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:
  • Field Details

    • NEGATIVE_INFINITY

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

      public static final BigNumber POSITIVE_INFINITY
    • NaN

      public static final BigNumber NaN
    • 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 Details

    • 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 String toString()
      Returns this big number as a string.
      Overrides:
      toString in class Object
    • doubleValue

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

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

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

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

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

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

      public 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(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 Object
    • bitWiseOr

      public BigNumber bitWiseOr(BigNumber number)
    • add

      public BigNumber add(BigNumber number)
    • subtract

      public BigNumber subtract(BigNumber number)
    • multiply

      public BigNumber multiply(BigNumber number)
    • divide

      public BigNumber divide(BigNumber number)
    • abs

      public BigNumber abs()
    • signum

      public int signum()
    • setScale

      public BigNumber setScale(int d, int round_enum)
    • sqrt

      public BigNumber sqrt()
    • 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(String str)
      Creates a BigNumber from a string.
    • fromBigDecimal

      public static BigNumber fromBigDecimal(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.