Ključna riječ strictfp u Javi

1. Uvod

Prema zadanim postavkama, izračunavanja s pomičnom zarezom u Javi ovise o platformi. Dakle, preciznost rezultata s pomičnim zarezom ovisi o hardveru koji se koristi.

U ovom uputstvu naučit ćemo kako koristiti strogifp u Javi kako bi se osigurala neovisna o platformi proračun s pomičnom zarezom.

2. strogifp Upotreba

Možemo koristiti strogifp ključna riječ kao nepristupni modifikator za klase, apstraktne metode ili sučelja:

javni strogifp klasa ScientificCalculator {... javna dvostruka suma (dvostruka vrijednost1, dvostruka vrijednost2) {povratna vrijednost1 + vrijednost2; } javna dvostruka razlika (dvostruka vrijednost1, dvostruka vrijednost2) {povratna vrijednost1 - vrijednost2; }} javna strogafp void izračunaMarksPercentage () {...} javna stroga sučelja kružnog kruga {double computeArea (dvostruki radijus); }

Kada deklariramo sučelje ili klasu s strogifp, sve njegove metode članova i drugi ugniježđeni tipovi nasljeđuju njegovponašanje.

Međutim, molim vas imajte na umu da ne smijemo koristiti strogifp ključna riječ o varijablama, konstruktorima ili apstraktnim metodama.

Uz to, u slučajevima kada imamo superklasu označenu s njom, naša podrazreda neće naslijediti to ponašanje.

3. Kada koristiti?

Java strogifp Ključna riječ dobro dođe kad god nam je jako stalo do determinističkog ponašanja svih izračuna s pomičnom zarezom:

@Test public void whenMethodOfstrictfpClassInvoked_thenIdenticalResultOnAllPlatforms () {Kalkulator ScientificCalculator = novi ScientificCalculator (); dvostruki rezultat = kalkulator.sum (23e10, 98e17); assertThat (rezultat je (9.800000230000001E18)); rezultat = kalkulator.diff (Double.MAX_VALUE, 1,56); assertThat (rezultat je (1.7976931348623157E308)); }

Budući da je ScientificCalculator klasa koristi ovu ključnu riječ, gornji test će proći na svim hardverskim platformama. Imajte na umu da ako ga ne koristimo, JVM može slobodno koristiti bilo kakvu dodatnu preciznost dostupnu na hardveru ciljne platforme.

Popularni slučaj upotrebe u stvarnosti je sustav koji izvodi visoko osjetljive medicinske izračune.

4. Zaključak

U ovom smo brzom vodiču razgovarali o tome kada i kako koristiti strogifp ključna riječ u Javi.

Kao i obično, svi predstavljeni uzorci koda dostupni su na GitHubu.


$config[zx-auto] not found$config[zx-overlay] not found