public abstract class MathUtils extends Object
add ( new Integer(10), new Integer(1))
will return an Integer
-Object with the value 11add ( new Long(10), new Integer(1))
will return an Long
-Object with the value 11add ( new Integer(10), new Float(1))
will return an Float
-Object with the value 11add (new Integer (Integer.MAX_VALUE), 1)
a
Long
-object will be returned with the correct value of Integer.MAX_VALUE+1
.multiply
,add
and substract
implement overflow
checks for long
-values. That means that if an overflow occurs while working with long values a BigInteger
will be returned.Modifier and Type | Field and Description |
---|---|
protected static int |
BASE_BIGDECIMAL |
protected static int |
BASE_BIGINTEGER |
protected static int |
BASE_DOUBLE |
protected static int |
BASE_FLOAT |
protected static int |
BASE_LONG
The constants are used to determine in which context we have to calculate.
|
protected static BigDecimal |
DECIMAL_ZERO
A BigDecimal representing the number 0
|
Constructor and Description |
---|
MathUtils() |
Modifier and Type | Method and Description |
---|---|
static Number |
add(Number op1,
Number op2)
Add two numbers and return the correct value / type.
|
static int |
compare(Number op1,
Number op2)
Compare two numbers.
|
static Number |
divide(Number op1,
Number op2)
Divide two numbers.
|
static int |
findCalculationBase(Number op)
Find the Number-type to be used for a single number
|
static boolean |
isInteger(Number n)
Test, whether the given object is an integer value
(Byte, Short, Integer, Long, BigInteger)
|
static boolean |
isZero(Number n)
Compare the given Number to 0.
|
static Number |
modulo(Number op1,
Number op2)
Modulo two numbers.
|
static Number |
multiply(Number op1,
Number op2)
Multiply two numbers and return the correct value / type.
|
static Number |
negate(Number op)
Negate a number
|
static Number |
subtract(Number op1,
Number op2)
Subtract two numbers and return the correct value / type.
|
static BigDecimal |
toBigDecimal(Number n)
Convert the given Number to a BigDecimal
|
static BigInteger |
toBigInteger(Number n)
Convert the given Number to a BigInteger
|
static Number |
wrapPrimitive(long value,
Class<?> type)
Wrap the given primitive into the given class if the value is in the
range of the destination type.
|
protected static final BigDecimal DECIMAL_ZERO
protected static final int BASE_LONG
protected static final int BASE_FLOAT
protected static final int BASE_DOUBLE
protected static final int BASE_BIGINTEGER
protected static final int BASE_BIGDECIMAL
public static BigDecimal toBigDecimal(Number n)
n
- public static BigInteger toBigInteger(Number n)
n
- public static boolean isZero(Number n)
n
- public static boolean isInteger(Number n)
n
- public static Number wrapPrimitive(long value, Class<?> type)
value
- type
- public static int findCalculationBase(Number op)
op
- operandpublic static Number add(Number op1, Number op2)
op1
- op2
- public static Number subtract(Number op1, Number op2)
op1
- op2
- public static Number multiply(Number op1, Number op2)
op1
- op2
- public static Number divide(Number op1, Number op2)
op1
- op2
- public static Number modulo(Number op1, Number op2) throws ArithmeticException
op1
- op2
- ArithmeticException
- If at least one parameter is a BigDecimalpublic static int compare(Number op1, Number op2)
op1
- op2
- Copyright © 2000–2021 The Apache Software Foundation. All rights reserved.