# How to implement infinity in Java?

## How to implement infinity in Java?

### Question

Does Java have anything to represent infinity for every numerical data type? How is it implemented such that I can do mathematical operations with it?

E.g.

```
int myInf = infinity; //However it is done
myInf + 5; //returns infinity
myInf*(-1); //returns negative infinity
```

I have tried using very large numbers, but I want a proper, **easy** solution.

### Accepted Answer

`double`

supports Infinity

```
double inf = Double.POSITIVE_INFINITY;
System.out.println(inf + 5);
System.out.println(inf - inf); // same as Double.NaN
System.out.println(inf * -1); // same as Double.NEGATIVE_INFINITY
```

prints

```
Infinity
NaN
-Infinity
```

note: `Infinity - Infinity`

is *Not A Number*.

Read more... Read less...

I'm supposing you're using integer math for a reason. If so, you can get a result that's functionally nearly the same as POSITIVE_INFINITY by using the MAX_VALUE field of the `Integer`

class:

```
Integer myInf = Integer.MAX_VALUE;
```

(And for NEGATIVE_INFINITY you could use MIN_VALUE.) There will of course be some functional differences, e.g., when comparing `myInf`

to a value that happens to be MAX_VALUE: clearly this number isn't less than `myInf`

.

There's also a library that actually has fields POSITIVE_INFINITY and NEGATIVE_INFINITY, but they are really just new names for MAX_VALUE and MIN_VALUE.

To use `Infinity`

, you can use `Double`

which supports `Infinity`

: -

```
System.out.println(Double.POSITIVE_INFINITY);
System.out.println(Double.POSITIVE_INFINITY * -1);
System.out.println(Double.NEGATIVE_INFINITY);
System.out.println(Double.POSITIVE_INFINITY - Double.NEGATIVE_INFINITY);
System.out.println(Double.POSITIVE_INFINITY - Double.POSITIVE_INFINITY);
```

**OUTPUT**: -

```
Infinity
-Infinity
-Infinity
Infinity
NaN
```

I'm not sure that Java has infinity for every numerical type but for some numerical data types the answer is positive:

```
Float.POSITIVE_INFINITY
Float.NEGATIVE_INFINITY
```

or

```
Double.POSITIVE_INFINITY
Double.NEGATIVE_INFINITY
```

Also you may find useful the following article which represents some mathematical operations involving +/- infinity: Java Floating-Point Number Intricacies.