En Java el estrictofp es un modificador que significa punto flotante estricto que no se introdujo en la versión base de Java como se introdujo en la versión 1.2 de Java. Se utiliza en Java para restringir los cálculos de punto flotante y garantizar el mismo resultado en todas las plataformas al realizar operaciones en la variable de punto flotante.
Los cálculos de punto flotante dependen de la plataforma, es decir, se obtienen diferentes resultados (valores de punto flotante) cuando un archivo de clase se ejecuta en diferentes plataformas (procesadores de 16/32/64 bits). Para resolver este tipo de problema, se introdujo la palabra clave estrictofp en la versión JDK 1.2 de la siguiente manera IEEE 754 Estándares para cálculos de punto flotante.
¿Qué es el altavoz?
Nota: El modificador estrictofp se usa solo con interfaces y métodos de clases, pero no se aplica con variables como se ilustra a continuación:
Ilustración 1: Uso de palabras clave con clases
strictfp class Test {
// All concrete methods here are implicitly strictfp.
}
Ilustración 2: Uso de palabras clave con 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(){}
}
Ilustración 3: Uso de palabras clave con método abstracto en una interfaz
cambiar el nombre de la carpeta de Linux
strictfp interface Test {
double sum();
// Compile-time error here
strictfp double mul();
}
De las ilustraciones anteriores se pueden extraer algunas conclusiones:
- Cuando una clase o una interfaz se declara con el modificador estrictofp, todos los métodos declarados en la clase/interfaz y todos los tipos anidados declarados en la clase son implícitamente estrictos.
- estrictofp no puedo utilizarse con métodos abstractos. Sin embargo, se puede utilizar con clases/interfaces abstractas.
- Dado que los métodos de una interfaz son implícitamente abstractos, estrictofp no se puede utilizar con ningún método dentro de una interfaz.
- A partir de la versión Java 17, la palabra clave estrictofp NO se requiere explícitamente ya que todas las expresiones de punto flotante se evalúan estrictamente.
Ejemplo:
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()); } }
Producción
1.006E11
Producción:
A continuación podemos ver el resultado en la consola.
llave de inserción del ordenador portátil