logo

mot-clé strictfp en java

En Java, le strictfp est un modificateur qui signifie virgule flottante stricte qui n'a pas été introduit dans la version de base de Java car il a été introduit dans la version Java 1.2. Il est utilisé en Java pour restreindre les calculs à virgule flottante et garantir le même résultat sur chaque plate-forme lors de l'exécution d'opérations dans la variable à virgule flottante. 
Les calculs à virgule flottante dépendent de la plate-forme, c'est-à-dire que des sorties différentes (valeurs à virgule flottante) sont obtenues lorsqu'un fichier de classe est exécuté sur différentes plates-formes (processeurs 16/32/64 bits). Pour résoudre ce type de problème, le mot clé strictfp a été introduit dans la version JDK 1.2 en suivant IEEE 754 normes pour les calculs à virgule flottante. 

Note: Le modificateur strictfp est utilisé uniquement avec les interfaces et les méthodes de classes, mais ne s'applique pas aux variables comme illustré ci-dessous :

Illustration 1 : Utilisation des mots clés avec les classes 



strictfp class Test {  

// All concrete methods here are implicitly strictfp.
}

Illustration 2 : Utilisation des mots clés avec les 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 : Utilisation des mots clés avec la méthode abstraite dans une interface

strictfp interface Test {  
double sum();

// Compile-time error here
strictfp double mul();
}

Certaines conclusions peuvent être tirées des illustrations ci-dessus :

  • Lorsqu'une classe ou une interface est déclarée avec le modificateur strictfp, alors toutes les méthodes déclarées dans la classe/interface et tous les types imbriqués déclarés dans la classe sont implicitement strictfp.
  • strictfp ne peut pas être utilisé avec des méthodes abstraites. Cependant, il peut être utilisé avec des classes/interfaces abstraites.
  • Étant donné que les méthodes d'une interface sont implicitement abstraites, strictfp ne peut être utilisé avec aucune méthode à l'intérieur d'une interface.
  • À partir de la version Java 17, le mot-clé strictfp n'est PAS requis explicitement car toutes les expressions à virgule flottante sont strictement évaluées.

Exemple: 

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());  } } 

Sortir
1.006E11 

Sortir: 

Ci-dessous, nous pouvons voir la sortie dans la console.

Écran de sortie' src='//techcodeview.com/img/java/66/strictfp-keyword-in-java.webp' title= 

Créer un quiz