strictfp é um modificador que significa ponto flutuante estrito que não foi introduzido na versão base do java como foi introduzido na versão 1.2 do Java. É usado em java para restringir cálculos de ponto flutuante e garantir o mesmo resultado em todas as plataformas durante a execução de operações na variável de ponto flutuante. 
Os cálculos de ponto flutuante dependem da plataforma, ou seja, uma saída diferente (valores de ponto flutuante) é obtida quando um arquivo de classe é executado em plataformas diferentes (processadores de 16/32/64 bits). Para resolver esse tipo de problema, a palavra-chave strictfp foi introduzida na versão JDK 1.2 seguindo os padrões IEEE 754 para cálculos de ponto flutuante. 

Observação: o modificador strictfp é usado apenas com classes, interfaces e métodos, mas não é aplicável para aplicar com variáveis ​​conforme ilustrado abaixo:

Ilustração 1: Uso de palavras - chave com classes 

strictfp class Test {
   
    // All concrete methods here are implicitly strictfp.    
}

Ilustração 2: Uso de palavras - chave com 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(){}
}          

Ilustração 3: Uso de palavras - chave com variáveis

strictfp interface Test {
    double sum();
    
    // Compile-time error here
    strictfp double mul(); 
}

Algumas conclusões podem ser tiradas das ilustrações acima como segue:

  • Quando uma classe ou interface é declarada com o modificador strictfp, todos os métodos declarados na classe / interface e todos os tipos aninhados declarados na classe são implicitamente strictfp.
  • strictfp não pode ser usado com métodos abstratos. No entanto, ele pode ser usado com classes / interfaces abstratas.
  • Como os métodos de uma interface são implicitamente abstratos, strictfp não pode ser usado com nenhum método dentro de uma interface.

Exemplo 

// 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 puting strictfp and
        // error is not found public static void main method
        System.out.println(t.sum());
    }
}

Saída: 

Este artigo é uma contribuição de Gaurav Miglani . Se você gosta de GeeksforGeeks e gostaria de contribuir, você também pode escrever um artigo usando write.geeksforgeeks.org ou enviar seu artigo para review-team@geeksforgeeks.org. Veja o seu artigo na página principal do GeeksforGeeks e ajude outros Geeks.
Escreva comentários se encontrar algo incorreto ou se quiser compartilhar mais informações sobre o tópico discutido acima.