logo

Float vs Double Java

Java, Java.

java-ohjelmointitaulukot

Liukuvan pisteen tietotyyppejä on kahdenlaisia:

  • float Data Type
  • kaksinkertainen tietotyyppi

Sekä float että double edustavat liukulukuja, jotka tallentavat desimaaliarvot.

Liukupisteen tietotyyppi Arvot Koko (bittiä)* Tallennustilatarve (tavuja) Oletusarvo Tarkkuus Desimaalilukuja Alue Tarkkuus
kellua IEEE 754 liukuluku 32 4 0.0f Yksittäinen 6 desimaalin numeroa 3.4e-038 - 3.4e+038 Matala
kaksinkertainen IEEE 754 liukuluku 64 8 0.0d Kaksinkertainen 15 desimaalin numeroa 1,7e-308 - 1,7e+308 Korkea

*Kokobitit sisältävät seuraavat:

Bittiä kellua kaksinkertainen
Merkki 1 1
Eksponentti 8 yksitoista
Mantissa 23 52

Yksittäinen tarkkuus: Se koostuu yksi merkkibitti (S), kahdeksan eksponenttibitit (E) ja kaksikymmentäkolme mantissanpalat (M).

rekha ikä

Kaksinkertainen tarkkuus: Se koostuu yksi merkkibitti (S), yksitoista eksponenttibitit (E) ja viisikymmentäkaksi mantissanpalat (M).

Float vs Double Java

float Data Type

Se on 32-bittinen yhden tarkkuuden IEEE 754 (Floating-Point Aithmetic -standardi) liukulukuluku. Se tarkoittaa, että se antaa 6-7 desimaalin tarkkuuden. Sitä käytetään, jos haluamme käyttää muistia tehokkaasti, koska se vie vähemmän muistia verrattuna kaksinkertaiseen tietotyyppiin. Kelluvan arvon määrittämiseksi meidän on käytettävä päätettä f tai F. Sen oletusarvo on 0.0f. Oletusarvoisesti kelluvia lukuja käsitellään kaksinkertaisina Javassa.

Jos esimerkiksi määritämme liukuluvun seuraavasti:

 float height = 167.7 

Yllä oleva float-muuttujan ilmoitus antaa käännösvirheen. Voimme korjata virheen lisäämällä liitteen f tai F.

 float height = 167.7f or float height = 167.7F 

kaksinkertainen tietotyyppi

Kaksoistietotyyppi on 64-bittinen kaksinkertainen tarkkuus IEEE 754 liukulukuluku. Se tarkoittaa, että se antaa 15-16 desimaalin tarkkuuden. Se kuluttaa enemmän muistia float-tietotyyppiin verrattuna. Sitä käytetään desimaaliarvojen tallentamiseen. Sen oletusarvo on 0.0d. On valinnaista lisätä pääte d tai D. Esimerkki:

java-merkkijono vertailuun
 double price = 987.90D or double price = 987.90d or double price = 987.90 

float Vs double Data Type

Kaksoistietotyyppi on tarkempi kuin float-tietotyyppi. Seuraavassa taulukossa on yhteenveto kelluvien ja kaksoistietotyyppien välisistä eroista.

Perusta float Data Type kaksinkertainen tietotyyppi
Muisti Se miehittää 4 tavua. Se miehittää 8 tavua.
Tarkkuus Sen tarkkuus on matala . Sen tarkkuus on korkea .
Tarkkuus Se seuraa yksittäinen tarkkuus (6-7 desimaalin numeroa). Se seuraa kaksinkertainen tarkkuus (15-16 desimaalilukua).
Käytetty avainsana The kellua avainsanaa käytetään float-luvun määrittämiseen. The kaksinkertainen avainsanaa käytetään määrittämään kaksinkertaisen tarkkuuden luku.
Kääre luokka Sen kääreluokka on java.lang.Float. Sen kääreluokka on java.lang.Double.
Oletustietotyyppi Java ei käytä sitä oletusarvoisena liukulukulukuna. Se on oletuksena tietotyyppi liukulukuille.
Tietojen menetys Siellä on ei tietojen menetystä jos muunnetaan float tuplaksi. Siellä on tietojen häviäminen jos muunnamme kaksinkertaisen kelluvaksi.
Käyttää Sitä tulee käyttää missä vähemmän tarkkuutta tarvitaan ja varastointi on rajoitus. Sitä käytetään missä enemmän tarkkuutta tarvitaan ja vaatii myös enemmän tarkkuutta.
Suffiksi Se käyttää F tai f jälkiliitteenä. On pakollista lisätä pääte, jos ilmoitat float-muuttujan. Se käyttää d tai D jälkiliitteenä. On valinnaista lisätä pääte, jos ilmoitat kaksoismuuttujan.
Edustus 28.96f tai 28.96F 12.5 tai 12.5D tai 12.5p

Samankaltaisuudet kelluvan ja kaksoistietotyypin välillä

  • Reaaliluvut voidaan esittää molemmilla tietotyypeillä.
  • Sekä float- että kaksoistietotyypit eivät ole tarkkoja, joten ne ovat likimääräisiä arvoja.

Mitä liukulukutietotyyppiä Javassa meidän tulisi käyttää?

double on tarkempi kuin float. Jos siis vaaditaan tarkempaa ja tarkempaa tulosta, käytä tuplaa. Toinen syy käyttää tuplaa on se, että jos numero ei sovi kellukkeen tarjoamaan valikoimaan, käytä tuplaa. Meidän tulee käyttää float-toimintoa, jos meillä on muistirajoitus, koska se vie puoli tilaa kuin kaksinkertainen.

Suosittelemme käyttämään double over float -toimintoa, jos muisti- ja tilarajoituksia ei ole ja kun tarvitaan enemmän tarkkuutta. Suosittelemme käyttämään kelluketta, jos muisti on huolissasi, eikä tulosta vaadita 16 tarkkuudella desimaaliluvulla.

kali linux terminaali

Seuraavat kaksi Java-ohjelmat osoittavat selvästi erot float- ja double-tietotyypin välillä.

FloatDataTypeExample.java

 public class FloatDataTypeExample { public static void main(String args[]) { float x = 1.0f, y = 3.0f; //defining x and y as float float z = x / y; //divides x by y and stores the result in the variable z System.out.println('x/y = ' + z); //prints the result } } 

Lähtö:

 x/y = 0.33333334 

DoubleDataTypeExample.java

 public class DoubleDataTypeExample { public static void main(String args[]) { double x = 1.0, y = 3.0; //defining x and y as double double z = x / y; //divides x by y and stores the result in the variable z System.out.println('x/y = ' + z); //prints the result } } 

Lähtö:

 x/y = 0.3333333333333333 

Yllä olevien kahden esimerkin avulla on selvää, että kaksoistietotyyppi vie enemmän muistia kaksinkertaisen tarkkuuden tallentamiseen ja antaa myös tarkemman tuloksen 16 desimaalin tarkkuudella. Vaikka float-tietotyyppi vie vähemmän tilaa yhden tarkkuuden lukujen tallentamiseen, ja se antaa tuloksia jopa 6 desimaalin tarkkuudella.