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.
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:(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 thanmyInf
.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.
For the numeric wrapper types.
e.g Double.POSITVE_INFINITY
Hope this might help you.
I'm not sure that Java has infinity for every numerical type but for some numerical data types the answer is positive:
or
Also you may find useful the following article which represents some mathematical operations involving +/- infinity: Java Floating-Point Number Intricacies.
To use
Infinity
, you can useDouble
which supportsInfinity
: -OUTPUT: -
Only Double and Float type support
POSITIVE_INFINITY
constant.The
Double
andFloat
types have thePOSITIVE_INFINITY
constant.