Gehe zu : static | Gehe zu : super |
Klassen, Interfaces oder Methoden mit diesem Schlüsselwort versehen
garantieren, dass die Resultate von float
(oder double) Ausdrücken
sogenannt "FP-strict" sind.
Das bedeutet, dass dem Java-Compiler nicht mehr die Möglichkeit
gegeben wird, andere Formate (z. B. float-extended-exponent)
zu verwenden.
Anders ausgedrückt: strictfp-Variable haben auf allen virtuellen
Maschinen exakt dieselbe binäre Darstellung, was garantiert, dass Rundungsfehler auf allen
virtuellen gleich behandelt werden. Andere Darstellungen (z. B. für den Math-Coprozessor) sind
zwar unter Umständen schneller, oder sogar genauer, aber eben nicht auf allen Plattformen
gleich.
public class MyMath { public static float muldif(float a, float b) { float zwischen = a * b; return zwischen / b; } }
public strictfp class MyMath { public static float muldif(float a, float b) { float zwischen = a * b; return zwischen / b; } }