Java Math Class: Comprehensive Guide to Numeric Operations

Explore the Java Math class in-depth, including its powerful methods for performing essential numeric operations such as exponentials, logarithms, square roots, and trigonometric functions. Learn how to use the java.lang.Math class effectively in your Java programs.



Java - Math Class

The java.lang.Math class contains methods for performing basic numeric operations such as elementary exponential, logarithm, square root, and trigonometric functions.

Math Class Declaration

Here is the declaration for the java.lang.Math class:

public final class Math extends Object

Java Math Class Fields

The following are the fields for the java.lang.Math class:

  • static double E - This is the double value that is closer than any other to e, the base of the natural logarithms.
  • static double PI - This is the double value that is closer than any other to pi, the ratio of the circumference of a circle to its diameter.

Java Math Class Methods

Sr.No. Method & Description
1 static double abs(double a) - Returns the absolute value of a double value.
2 static float abs(float a) - Returns the absolute value of a float value.
3 static int abs(int a) - Returns the absolute value of an int value.
4 static long abs(long a) - Returns the absolute value of a long value.
5 static double acos(double a) - Returns the arc cosine of a value (angle in range 0.0 through pi).
6 static double asin(double a) - Returns the arc sine of a value (angle in range -pi/2 through pi/2).
7 static double atan(double a) - Returns the arc tangent of a value (angle in range -pi/2 through pi/2).
8 static double atan2(double y, double x) - Returns the angle theta from the conversion of rectangular coordinates (x, y) to polar coordinates (r, theta).
9 static double cbrt(double a) - Returns the cube root of a double value.
10 static double ceil(double a) - Returns the smallest double value greater than or equal to the argument, equal to a mathematical integer.
11 static double copySign(double magnitude, double sign) - Returns the first floating-point argument with the sign of the second argument.
12 static float copySign(float magnitude, float sign) - Returns the first floating-point argument with the sign of the second argument.
13 static double cos(double a) - Returns the trigonometric cosine of an angle.
14 static double cosh(double x) - Returns the hyperbolic cosine of a double value.
15 static double exp(double a) - Returns Euler's number e raised to the power of a double value.
16 static double expm1(double x) - Returns ex - 1.
17 static double floor(double a) - Returns the largest double value less than or equal to the argument, equal to a mathematical integer.
18 static int getExponent(double d) - Returns the unbiased exponent used in the representation of a double.
19 static int getExponent(float f) - Returns the unbiased exponent used in the representation of a float.
20 static double hypot(double x, double y) - Returns sqrt(x² + y²) without intermediate overflow or underflow.
21 static double IEEEremainder(double f1, double f2) - Computes the remainder operation on two arguments as prescribed by the IEEE 754 standard.
22 static double log(double a) - Returns the natural logarithm (base e) of a double value.
23 static double log10(double a) - Returns the base 10 logarithm of a double value.
24 static double log1p(double x) - Returns the natural logarithm of the sum of the argument and 1.
25 static double max(double a, double b) - Returns the greater of two double values.
26 static float max(float a, float b) - Returns the greater of two float values.
27 static int max(int a, int b) - Returns the greater of two int values.
28 static long max(long a, long b) - Returns the greater of two long values.
29 static double min(double a, double b) - Returns the smaller of two double values.
30 static float min(float a, float b) - Returns the smaller of two float values.
31 static int min(int a, int b) - Returns the smaller of two int values.
32 static long min(long a, long b) - Returns the smaller of two long values.
33 static double nextAfter(double start, double direction) - Returns the floating-point number adjacent to the first argument in the direction of the second argument.
34 static float nextAfter(float start, double direction) - Returns the floating-point number adjacent to the first argument in the direction of the second argument.
35 static double nextUp(double d) - Returns the floating-point value adjacent to d in the direction of positive infinity.
36 static float nextUp(float f) - Returns the floating-point value adjacent to f in the direction of positive infinity.
37 static double pow(double a, double b) - Returns the value of the first argument raised to the power of the second argument.
38 static double random() - Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0.
39 static double rint(double a) - Returns the double value that is closest in value to the argument and is equal to a mathematical integer.
40 static long round(double a) - Returns the closest long to the argument.
41 static int round(float a) - Returns the closest int to the argument.
42 static double scalb(double d, int scaleFactor) - Returns d × 2scaleFactor rounded as if performed by a single correctly rounded floating-point multiply.
43 static float scalb(float f, int scaleFactor) - Returns f × 2scaleFactor rounded as if performed by a single correctly rounded floating-point multiply.
44 static double signum(double d) - Returns the signum function of the argument; zero if the argument is zero, 1.0 if the argument is greater than zero, -1.0 if the argument is less than zero.
45 static float signum(float f) - Returns the signum function of the argument; zero if the argument is zero, 1.0f if the argument is greater than zero, -1.0f if the argument is less than zero.
46 static double sin(double a) - Returns the hyperbolic sine of a double value.
47 static double sinh(double x) - Returns the hyperbolic sine of a double value.
48 static double sqrt(double a) - Returns the correctly rounded positive square root of a double value.
49 static double tan(double a) - Returns the trigonometric tangent of an angle.
50 static double tanh(double x) - Returns the hyperbolic tangent of a double value.
51 static double toDegrees(double angrad) - Converts an angle measured in radians to an approximately equivalent angle measured in degrees.
52 static double toRadians(double angdeg) - Converts an angle measured in degrees to an approximately equivalent angle measured in radians.
53 static double ulp(double d) - Returns the size of an ulp of the argument.
54 static double ulp(float f) - Returns the size of an ulp of the argument.

Methods Inherited

This class inherits methods from the java.lang.Object class.

Java Math Class Example

The following example shows the usage of some important methods provided by the Math class:

Student Data Example

    package com.tutorialsarena;

    public class MathDemo {
    public static void main(String[] args) {
        // get two double numbers
        double x = 60984.1;
        double y = -497.99;
    
        // get the natural logarithm for x
        System.out.println("Math.log(" + x + ")=" + Math.log(x));
    
        // get the natural logarithm for y
        System.out.println("Math.log(" + y + ")=" + Math.log(y));
    
        // get the max value
        System.out.println("Math.max(" + x + ", y" + ")=" + Math.max(x,y));
    
        // get the min value
        System.out.println("Math.min(" + x + ", y" + ")=" + Math.min(x,y));
    }
    }
  

Output

Let us compile and run the above program, which will produce the following result:

Math.log(60984.1)=11.018368453441132
Math.log(-497.99)=NaN
Math.max(60984.1, y)=60984.1
Math.min(60984.1, y)=-497.99