# Java Summary: Math Class

Some basic math functions can be found in the Math class. The `StrictMath` class (not described here) may produce less accurate results and be slower, but will produce absolutely identical results, bit for bit, on all machines. Don't use `StrictMath` unless you need this very specific kind of portability.

If you need numbers that exceed the range of `long`, use `java.math.BigInteger`. If you need to do exact decimal arithmetic, use `java.math.BigDecimal`, which gives complete control over precision and rounding, eg for financial calculations. Assume following declarations

    float f;
    double d, d1, d2;
    double ar;  // angle in radians.
    x is any of int, long, float, or double.

Math Constants
Two common constants are defined in the Math class.
double | Math.E() | Value of e, 2.718282..., base of the natural logarithms.
double | Math.PI() | Value of pi, 3.14159265 ....
Math Methods
Trigonometric Methods
All trigonometric method parameters are measured in radians, the normal mathematical system of angles, and not in degrees, the normal human angular measurement system. Use the toRadians or toDegrees methods to convert between these systems, or use the fact that there are 2*PI radians in 360 degrees. In addition to the methods below, the arc methods are also available.
double | Math.sin(ar) | Returns the sine of ar.
double | Math.cos(ar) | Returns the cosine of ar.
double | Math.tan(ar) | Returns the tangent of ar.
double | Math.toRadians(d) | Returns d (angle in degrees) converted to radians.
double | Math.toDegrees(ar) | Returns ar (angle in radians) converted to degrees.
Exponential Methods
The two basic functions for logarithms and power are available. These both use the base e (Math.E) as is the usual case in mathematics.
double | Math.exp(d) | Returns e (2.71...) to the power d.
double | Math.pow(d1, d2) | Returns d1d2.
double | Math.log(d) | Returns the logarithm of d to base e.
double | Math.log10(d) | Returns the logarithm of d to base 10.
Misc Methods
double | Math.sqrt(d) | Returns the square root of d.
t | Math.abs(x) | Returns absolute value of x with same type as the parameter: int, long, float, or double.
t | Math.max(x, y) | Returns maximum of x and y with same type as the parameter: int, long, float, or double.
t | Math.min(x, y) | Returns minimum of x and y with same type as the parameter: int, long, float, or double.
Integer Related Methods
The following methods translate floating point values to integer values, altho these values may still be stored in a double.
double | Math.floor(d) | Returns the closest integer-valued double which is equal to or less than d.
double | Math.ceil(d) | Returns the closest integer-valued double which is equal to or greater than d.
double | Math.rint(d) | Returns the closest integer-valued double to d.
long | Math.round(d) | Returns the long which is closest in value to the double d.
int | Math.round(f) | Returns the int which is closest in value to the float f.
Random Numbers
double | Math.random() | Returns a number x in the range, 0.0 <= x < 1.0.

## Other math libraries

- jakarta.apache.org/commons/math/ - Apache Jakarta Math library.
- www.ia.hiof.no/~kyvh/SciLib/docs/scilib.html - SciLib

Copyleft 2005 Fred Swartz