Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Java strictfp keyword
The strictfp keyword is a modifier that stands for strict floating point. As the name suggests, it ensures that floating-point operations give the same result on any platform. This keyword was introduced in Java version 1.2.
In Java, the floating point precision may vary from one platform to another. The strictfp keyword solves this issue and ensures consistency across all platforms.
With the release of Java 17 version, the strictfp keyword is no longer needed. Regardless of whether you use this keyword, the JVM now provides consistent results for floating-point calculations across different platforms.
When to use Java strictfp keyword?
The strictfp keyword can be used with class, method, and interfaces but cannot be applied to abstract methods, variable and constructors.
Furthermore, if strictfp modifier is used with a class or an interface, then all methods declared in that class and interface are implicitly strictfp.
Following are the valid strictfp usage ?
// with class
strictfp class Test {
// code
}
// with interface
strictfp interface Test {
// code
}
class A {
// with method inside class
strictfp void Test() {
// code
}
}
Following are the invalid strictfp usage ?
class A {
// not allowed with variable
strictfp float a;
}
class A {
// not allowed with abstract method
strictfp abstract void test();
}
class A {
// not allowed with constructor
strictfp A() {
// code
}
}
Example of Java strictfp keyword
The following example demonstrates the usage of strictfp keyword. Here, the addition() method in the Calculator class will perform the addition with strict floating-point precision.
// class defined with strictfp keyword
strictfp class Calculator {
public double addition(double num1, double num2) {
return num1 + num2;
}
}
// Main class
public class Main {
public static void main(String[] args) {
// creating instance
Calculator calc = new Calculator();
// method call
System.out.println(calc.addition(5e+10, 6e+11));
}
}
When you execute the above code, result will be displayed along with a warning message as the strictfp keyword is not required from Java 17.
6.5E11