Package com.mckoi.util
Class BigNumber
- java.lang.Object
-
- java.lang.Number
-
- com.mckoi.util.BigNumber
-
- All Implemented Interfaces:
java.io.Serializable
public final class BigNumber extends java.lang.NumberExtends 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 Summary
Fields Modifier and Type Field Description static BigNumberBIG_NUMBER_ONEstatic BigNumberBIG_NUMBER_ZEROStatics for 0 and 1.static BigNumberNaNstatic BigNumberNEGATIVE_INFINITYStatics for negative infinity, positive infinity and NaN.static BigNumberPOSITIVE_INFINITY
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description BigNumberabs()BigNumberadd(BigNumber number)java.math.BigDecimalasBigDecimal()Returns the big number as a BigDecimal object.BigNumberbitWiseOr(BigNumber number)bytebyteValue()Returns this big number as a byte.booleancanBeRepresentedAsInt()Returns true if this BigNumber can be represented by a 32-bit int (has no scale).booleancanBeRepresentedAsLong()Returns true if this BigNumber can be represented by a 64-bit long (has no scale).intcompareTo(BigNumber number)Compares this BigNumber with the given BigNumber.BigNumberdivide(BigNumber number)doubledoubleValue()Returns this big number as a double.booleanequals(java.lang.Object ob)The equals comparison uses the BigDecimal 'equals' method to compare values.floatfloatValue()Returns this big number as a float.static BigNumberfromBigDecimal(java.math.BigDecimal val)Creates a BigNumber from a BigDecimal.static BigNumberfromData(byte[] buf, int scale, byte state)Creates a BigNumber from the given data.static BigNumberfromDouble(double value)Creates a BigNumber from a double.static BigNumberfromFloat(float value)Creates a BigNumber from a float.static BigNumberfromInt(int value)Creates a BigNumber from an int.static BigNumberfromLong(long value)Creates a BigNumber from a long.static BigNumberfromString(java.lang.String str)Creates a BigNumber from a string.intgetScale()Returns the scale of this number, or -1 if the number has no scale (if it -inf, +inf or NaN).bytegetState()Returns the state of this number.intintValue()Returns this big number as an int.longlongValue()Returns this big number as a long.BigNumbermultiply(BigNumber number)BigNumbersetScale(int d, int round_enum)shortshortValue()Returns this big number as a short.intsignum()BigNumbersqrt()BigNumbersubtract(BigNumber number)byte[]toByteArray()Returns this number as a byte array (unscaled).java.lang.StringtoString()Returns this big number as a string.
-
-
-
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
-
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 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:
toStringin classjava.lang.Object
-
doubleValue
public double doubleValue()
Returns this big number as a double.- Specified by:
doubleValuein classjava.lang.Number
-
floatValue
public float floatValue()
Returns this big number as a float.- Specified by:
floatValuein classjava.lang.Number
-
longValue
public long longValue()
Returns this big number as a long.- Specified by:
longValuein classjava.lang.Number
-
intValue
public int intValue()
Returns this big number as an int.- Specified by:
intValuein classjava.lang.Number
-
shortValue
public short shortValue()
Returns this big number as a short.- Overrides:
shortValuein classjava.lang.Number
-
byteValue
public byte byteValue()
Returns this big number as a byte.- Overrides:
byteValuein classjava.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:
equalsin classjava.lang.Object
-
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(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.
-
-