Java Strictfp Keyword
strictfp is a keyword in java used 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 these types of issues, strictfp keyword was introduced in JDK 1.2 version by following IEEE 754 standards for floating-point calculations.
Important Points
- strictfp modifier is used with classes, interfaces, and methods only.
- When a class or an interface is declared with strictfp modifier, then all methods declared in the class/interface, and all nested types declared in the class, are implicitly strictfp.
- strictfp cannot be used with abstract methods. However, it can be used with abstract classes/interfaces.
- Since methods of an interface are implicitly abstract, strictfp cannot be used with any method inside an interface.
- public class Main {
- public static void main(String[] args) {
- // Making Object of StrictFp
- StricfpExample stricfpexample = new StricfpExample();
- double sum = stricfpexample.sum(20e+10, 5e+08);
- System.out.println("Sum: " + sum);
- sum = stricfpexample.sum(20e+10, 5e+08);
- System.out.println("Sum: " + sum);
- }
- }
- public strictfp class StricfpExample {
- // Normal method
- public double sum(double num1, double num2) {
- return (num1 + num2);
- }
- // strictfp metheod
- public strictfp double sum(double num1, double num2, double num3) {
- return (num1 + num2 + num3);
- }
- }
Output
Sum: 2.005E11
Sum: 2.055E11
Note :
The strictfp keyword cannot be applied on abstract methods, variables or constructors.
Write a
comment...