Last Updated : 21 Mar, 2024
In Java, the strictfp is a modifier that stands for strict floating-point which was not introduced in the base version of Java as it was introduced in Java version 1.2. It is used in Java for restricting floating-point calculations and ensuring the same result on every platform while performing operations in the floating-point variable.
Floating-point calculations are platform-dependent i.e. different output (floating-point values) is achieved when a class file is run on different platforms (16/32/64-bit processors). To solve this type of issue, the strictfp keyword was introduced in the JDK 1.2 version by following IEEE 754 standards for floating-point calculations.
Note: strictfp modifier is used with classes, interfaces, and methods only but is not applicable to apply with variables as illustrated below:
Illustration 1: Keyword usage with classes
strictfp class Test {
// All concrete methods here are implicitly strictfp.
}
Illustration 2: Keyword usage with Interfaces
strictfp interface Test {
// All methods here becomes implicitly
// strictfp when used during inheritance.
}class Car {
// strictfp applied on a concrete method
strictfp void calculateSpeed(){}
}
Illustration 3: Keyword usage with Abstract method in an Interface
strictfp interface Test {
double sum();
// Compile-time error here
strictfp double mul();
}
Some conclusions can be drawn from the above illustrations as follows:
Example:
Java
// Java program to illustrate strictfp modifier
// Usage in Classes
// Main class
class GFG {
// Method 1
// Calculating sum using strictfp modifier
public strictfp double sum()
{
double num1 = 10e+10;
double num2 = 6e+08;
// Returning the sum
return (num1 + num2);
}
// Method 2
// Main driver method
public static void main(String[] args)
{
// Creating object of class in main() method
GFG t = new GFG();
// Here we have error of putting strictfp and
// error is not found public static void main method
System.out.println(t.sum());
}
}
Output:
Below we can see the output in console.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4