strictfp 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 coma flotante y garantizar el mismo resultado en todas las plataformas mientras se realizan operaciones en la variable de coma flotante.
Los cálculos de coma flotante dependen de la plataforma, es decir, se obtienen resultados diferentes (valores de coma flotante) cuando un archivo de clase se ejecuta en plataformas diferentes (procesadores de 16/32/64 bits). Para resolver este tipo de problema, se introdujo la palabra clave strictfp en la versión JDK 1.2 siguiendo los estándares IEEE 754 para cálculos de punto flotante.
Nota: el modificador strictfp se usa solo con clases, interfaces y métodos, pero no es aplicable para aplicar 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 variables
strictfp interface Test { double sum(); // Compile-time error here strictfp double mul(); }
Algunas conclusiones se pueden sacar de las ilustraciones anteriores como sigue:
- Cuando una clase o una interfaz se declara con el modificador strictfp, todos los métodos declarados en la clase/interfaz y todos los tipos anidados declarados en la clase son implícitamente strictfp.
- strictfp no se puede utilizar con métodos abstractos. Sin embargo, se puede usar con clases/interfaces abstractas.
- Dado que los métodos de una interfaz son implícitamente abstractos, strictfp no se puede usar con ningún método dentro de una interfaz.
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:
Este artículo es una contribución de Gaurav Miglani . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA