org.apache.tinkerpop.gremlin.util

## Class NumberHelper

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

Fields
Modifier and Type Field and 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 and 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)`