A strictfp kulcsszó Java-ban

1. Bemutatkozás

Alapértelmezés szerint a Java lebegőpontos számításai platformfüggőek. Tehát a lebegőpontos pontosság a használt hardvertől függ.

Ebben az oktatóanyagban megtanuljuk, hogyan kell használat szigorúfp a Java-ban platformfüggetlen lebegőpontos számítások biztosítása érdekében.

2. szigorúfp Használat

Használhatjuk a szigorúfp kulcsszó nem hozzáférési módosítóként osztályokhoz, nem absztrakt módszerekhez vagy interfészekhez:

public strictfp osztály ScientificCalculator {... nyilvános dupla összeg (dupla érték1, dupla érték2) {return value1 + value2; } public double diff (double value1, double value2) {return value1 - value2; }} public strictfp void calcMarkPercentage () {...} public strictfp interfész Kör {kettős számítási terület (dupla sugár); }

Amikor deklarálunk egy interfészt vagy osztályt a strictfp, összes tagmódszere és más beágyazott típusok öröklikviselkedés.

Kérem azonban vegye figyelembe, hogy nem használhatjuk szigorúfp kulcsszó a változókra, a konstruktorokra vagy az absztrakt módszerekre.

Ezenkívül azokra az esetekre, amikor van szuperosztályunk megjelölve, az alosztályunk nem örökli meg ezt a viselkedést.

3. Mikor kell használni?

Jáva szigorúfp kulcsszó hasznos, amikor nagyon sokat érdekel az összes lebegőpontos számítás determinisztikus viselkedése:

@Test public void whenMethodOfstrictfpClassInvoked_thenIdenticalResultOnAllPlatforms () {ScientificCalculator calculator = new ScientificCalculator (); kettős eredmény = számológép.összeg (23e10, 98e17); assertThat (az eredmény: (9.800000230000001E18)); eredmény = számológép.diff (Dupla.MAX_ÉRTÉK, 1.56); assertThat (az eredmény: (1,7976931348623157E308)); }

Mivel a Tudományos számológép osztály használja ezt a kulcsszót, a fenti teszteset minden hardverplatformon átmegy. Kérjük, vegye figyelembe, hogy ha nem használjuk, akkor a JVM szabadon alkalmazhat bármilyen extra pontosságot, amely elérhető a célplatform hardverén.

Népszerű valóságos használati esete a rendkívül érzékeny gyógyászati ​​számításokat végző rendszer.

4. Következtetés

Ebben a gyors bemutatóban arról beszéltünk, hogy mikor és hogyan kell használni a szigorúfp kulcsszó Java-ban.

Szokás szerint az összes bemutatott kódminta elérhető a GitHubon.