## Class NumberHelper

• ```public final class NumberHelper
extends Object```
Author:
Daniel Kuppitz (http://gremlin.guru)
• ### Field Summary

Fields
Modifier and Type Field Description
`BiFunction<Number,​Number,​Number>` `add`
`BiFunction<Number,​Number,​Integer>` `cmp`
`BiFunction<Number,​Number,​Number>` `div`
`BiFunction<Number,​Number,​Number>` `max`
`BiFunction<Number,​Number,​Number>` `min`
`BiFunction<Number,​Number,​Number>` `mul`
`BiFunction<Number,​Number,​Number>` `sub`
• ### Method Summary

All Methods
Modifier and Type Method Description
`static Number` ```add​(Number a, Number b)```
Adds two numbers returning the highest common number class between them.
`static boolean` ```bothAreNaN​(Object first, Object second)```
`static Integer` ```compare​(Number a, Number b)```
Compares two numbers.
`static Number` ```div​(Number a, Number b)```
Divides two numbers returning the highest common number class between them calling `div(Number, Number, boolean)` with a `false`.
`static Number` ```div​(Number a, Number b, boolean forceFloatingPoint)```
Divides two numbers returning the highest common number class between them.
`static boolean` ```eitherAreNaN​(Object first, Object second)```
`static Class<? extends Number>` ```getHighestCommonNumberClass​(boolean forceFloatingPoint, Number... numbers)```
`static Class<? extends Number>` `getHighestCommonNumberClass​(Number... numbers)`
`static boolean` `isNaN​(Object object)`
`static boolean` `isNegativeInfinity​(Object value)`
`static boolean` `isPositiveInfinity​(Object value)`
`static Comparable` ```max​(Comparable a, Comparable b)```
Gets the larger number of the two provided returning the highest common number class between them.
`static Number` ```max​(Number a, Number b)```
Gets the larger number of the two provided returning the highest common number class between them.
`static Comparable` ```min​(Comparable a, Comparable b)```
Gets the smaller number of the two provided returning the highest common number class between them.
`static Number` ```min​(Number a, Number b)```
Gets the smaller number of the two provided returning the highest common number class between them.
`static Number` ```mul​(Number a, Number b)```
Multiplies two numbers returning the highest common number class between them.
`static Number` ```sub​(Number a, Number b)```
Subtracts two numbers returning the highest common number class between them.
• ### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• ### Field Detail

`public final BiFunction<Number,​Number,​Number> add`
• #### sub

`public final BiFunction<Number,​Number,​Number> sub`
• #### mul

`public final BiFunction<Number,​Number,​Number> mul`
• #### div

`public final BiFunction<Number,​Number,​Number> div`
• #### min

`public final BiFunction<Number,​Number,​Number> min`
• #### max

`public final BiFunction<Number,​Number,​Number> max`
• #### cmp

`public final BiFunction<Number,​Number,​Integer> cmp`
• ### Method Detail

• #### getHighestCommonNumberClass

`public static Class<? extends Number> getHighestCommonNumberClass​(Number... numbers)`
• #### getHighestCommonNumberClass

```public static Class<? extends Number> getHighestCommonNumberClass​(boolean forceFloatingPoint,
Number... numbers)```

```public static Number add​(Number a,
Number b)```
Adds two numbers returning the highest common number class between them.
```     a = 1, b = 1 -> 2
a = null, b = 1 -> null
a = 1, b = null -> 1
a = null, b = null -> null
```
Parameters:
`a` - should be thought of as the seed to be modified by `b`
`b` - the modifier to {code a}
• #### sub

```public static Number sub​(Number a,
Number b)```
Subtracts two numbers returning the highest common number class between them.
```     a = 1, b = 1 -> 0
a = null, b = 1 -> null
a = 1, b = null -> 1
a = null, b = null -> null
```
Parameters:
`a` - should be thought of as the seed to be modified by `b`
`b` - the modifier to {code a}
• #### mul

```public static Number mul​(Number a,
Number b)```
Multiplies two numbers returning the highest common number class between them.
```     a = 1, b = 2 -> 2
a = null, b = 1 -> null
a = 1, b = null -> 1
a = null, b = null -> null
```
Parameters:
`a` - should be thought of as the seed to be modified by `b`
`b` - the modifier to {code a}
• #### div

```public static Number div​(Number a,
Number b)```
Divides two numbers returning the highest common number class between them calling `div(Number, Number, boolean)` with a `false`.
• #### div

```public static Number div​(Number a,
Number b,
boolean forceFloatingPoint)```
Divides two numbers returning the highest common number class between them.
```     a = 4, b = 2 -> 2
a = null, b = 1 -> null
a = 1, b = null -> 1
a = null, b = null -> null
```
Parameters:
`a` - should be thought of as the seed to be modified by `b`
`b` - the modifier to {code a}
`forceFloatingPoint` - when set to `true` ensures that the return value is the highest common floating number class
• #### min

```public static Number min​(Number a,
Number b)```
Gets the smaller number of the two provided returning the highest common number class between them.
```     a = 4, b = 2 -> 2
a = null, b = 1 -> 1
a = 1, b = null -> 1
a = null, b = null -> null
a = NaN, b = 1 -> 1
a = 1, b = NaN -> 1
a = NaN, b = NaN -> NaN
```
• #### min

```public static Comparable min​(Comparable a,
Comparable b)```
Gets the smaller number of the two provided returning the highest common number class between them.
```     a = 4, b = 2 -> 2
a = null, b = 1 -> 1
a = 1, b = null -> 1
a = null, b = null -> null
a = NaN, b = 1 -> 1
a = 1, b = NaN -> 1
a = NaN, b = NaN -> NaN
```
• #### max

```public static Number max​(Number a,
Number b)```
Gets the larger number of the two provided returning the highest common number class between them.
```     a = 4, b = 2 -> 4
a = null, b = 1 -> 1
a = 1, b = null -> 1
a = null, b = null -> null
a = NaN, b = 1 -> 1
a = 1, b = NaN -> 1
a = NaN, b = NaN -> NaN
```
• #### max

```public static Comparable max​(Comparable a,
Comparable b)```
Gets the larger number of the two provided returning the highest common number class between them.
```     a = 4, b = 2 -> 4
a = null, b = 1 -> 1
a = 1, b = null -> 1
a = null, b = null -> null
a = NaN, b = 1 -> 1
a = 1, b = NaN -> 1
a = NaN, b = NaN -> NaN
```
• #### compare

```public static Integer compare​(Number a,
Number b)```
Compares two numbers. Follows orderability semantics for NaN, which places NaN after +Inf.
```     a = 4, b = 2 -> 1
a = 2, b = 4 -> -1
a = null, b = 1 -> -1
a = 1, b = null -> 1
a = null, b = null -> 0
a = NaN, b = NaN -> 0
a = NaN, b = Inf -> 1
```
• #### isNaN

`public static boolean isNaN​(Object object)`
• #### eitherAreNaN

```public static boolean eitherAreNaN​(Object first,
Object second)```
• #### bothAreNaN

```public static boolean bothAreNaN​(Object first,
Object second)```
• #### isPositiveInfinity

`public static boolean isPositiveInfinity​(Object value)`
• #### isNegativeInfinity

`public static boolean isNegativeInfinity​(Object value)`