Yandex

Java Advanced ConceptsJava Advanced Concepts3

Java ReferenceJava Reference1

Java strictfp Keyword
Usage and Examples



strictfp Keyword in Java

The strictfp keyword in Java is used to ensure that floating-point calculations (float and double) produce consistent results across different platforms or processors. It forces the Java Virtual Machine (JVM) to follow IEEE 754 standards strictly, regardless of the underlying hardware's capabilities.

Why do we need strictfp?

On some hardware, floating-point precision can be higher than what IEEE 754 requires. This might result in small differences in calculations when the same Java program runs on different platforms. The strictfp keyword prevents these inconsistencies by enforcing standard rules for rounding, overflow, and underflow.

Where can strictfp be used?

You can apply strictfp to:

Note: You cannot use strictfp with variables or constructors.

Example 1: strictfp with a Class

public strictfp class Calculator {
    public double divide(double a, double b) {
        return a / b;
    }

    public static void main(String[] args) {
        Calculator c = new Calculator();
        System.out.println(c.divide(10.0, 3.0));
    }
}
3.3333333333333335

Explanation

The strictfp modifier on the class ensures that all floating-point operations within the class follow IEEE 754 standards strictly. Even if the CPU supports extra precision, this will be ignored in favor of consistent results.

Example 2: strictfp with a Method

public class Example {
    public strictfp double compute(double a, double b) {
        return a * b + 2.5;
    }

    public static void main(String[] args) {
        Example e = new Example();
        System.out.println(e.compute(2.0, 1.5));
    }
}
5.5

Explanation

Only the method compute follows the strict IEEE floating-point rules. Other methods in the class will not be affected unless they also use strictfp.

Example 3: strictfp with an Interface

public strictfp interface MathConstants {
    double PI = 3.141592653589793;
    double E = 2.718281828459045;
}

This ensures that any class implementing this interface will inherit floating-point constants that comply with IEEE 754 standards.

When to Use strictfp

Use strictfp when:

When You Can Skip It

If your program doesn’t require floating-point precision consistency across machines (e.g., simple business logic or UI code), you likely don’t need strictfp.

Points to Remember



Welcome to ProgramGuru

Sign up to start your journey with us

Support ProgramGuru.org

You can support this website with a contribution of your choice.

When making a contribution, mention your name, and programguru.org in the message. Your name shall be displayed in the sponsors list.

PayPal

UPI

PhonePe QR

MALLIKARJUNA M