I Java, Java.
Det finnes to typer flytende punktdatatyper:
- flytende datatype
- dobbel datatype
Både float og double representerer flyttallstallene som lagrer desimalverdiene.
matrisemultiplikasjon i c
Flytende punkt datatype | Verdier | Størrelse (bits)* | Lagringskrav (bytes) | Standardverdi | Presisjon | Desimalsiffer | Område | Nøyaktighet |
---|---|---|---|---|---|---|---|---|
flyte | IEEE 754 flytende punkt | 32 | 4 | 0,0f | Enkelt | 6 desimaler | 3.4e-038 til 3.4e+038 | Lav |
dobbelt | IEEE 754 flytende punkt | 64 | 8 | 0,0d | Dobbelt | 15 desimaler | 1.7e-308 til 1.7e+308 | Høy |
*Størrelsesbitene inkluderer følgende:
Bits | flyte | dobbelt |
---|---|---|
Skilt | 1 | 1 |
Eksponent | 8 | elleve |
Mantissa | 23 | 52 |
Enkel presisjon: Det består av en tegnbit (S), åtte eksponentbiter (E), og tjue-tre mantissebiter (M).
Dobbel presisjon: Det består av en tegnbit (S), elleve eksponentbiter (E), og femtito mantissebiter (M).
flytende datatype
Det er et 32-bits, enkeltpresisjon IEEE 754 (Standard for Floating-Point Arithmetic) flyttallnummer. Det betyr at det gir 6-7 desimalsiffer presisjon. Det brukes hvis vi ønsker å bruke minne effektivt fordi det tar mindre minne sammenlignet med dobbel datatype. For å definere en flytende verdi, må vi bruke et suffiks f eller F. Standardverdien er 0.0f. Som standard behandles flyttall som doble i Java.
java til json-objekt
For eksempel, hvis vi definerer et flyttall som:
float height = 167.7
Ovennevnte deklarasjon av flytvariabel gir kompileringsfeilen. Vi kan rette feilen ved å legge til et suffiks f eller F.
float height = 167.7f or float height = 167.7F
dobbel datatype
Den doble datatypen er et 64-bits IEEE 754-flyttall med dobbel presisjon. Det betyr at det gir 15-16 desimalsiffer presisjon. Den bruker mer minne sammenlignet med flytdatatypen. Den brukes til å lagre desimalverdier. Standardverdien er 0.0d. Det er valgfritt å legge til suffikset d eller D. For eksempel:
double price = 987.90D or double price = 987.90d or double price = 987.90
flyte kontra dobbel datatype
Den doble datatypen er mer nøyaktig enn den flytende datatypen. Tabellen nedenfor oppsummerer forskjellene mellom flytende og doble datatyper.
Basis | flytende datatype | dobbel datatype |
---|---|---|
Hukommelse | Det opptar 4 bytes. | Det opptar 8 bytes. |
Nøyaktighet | Dens nøyaktighet er lav . | Dens nøyaktighet er høy . |
Presisjon | Det følger enkeltpresisjon (6-7 desimaler). | Det følger dobbel presisjon (15-16 desimaler). |
Søkeord brukt | De flyte nøkkelord brukes til å definere et flyttall. | De dobbelt nøkkelord brukes til å definere et tall med dobbel presisjon. |
Innpakningsklasse | Dens innpakningsklasse er java.lang.Float. | Dens innpakningsklasse er java.lang.Double. |
Standard datatype | Java bruker det ikke som standard flyttallnummer. | Det er den misligholde datatype for flyttall. |
Datatap | Det vil være ingen tap av data hvis vi konverterer float til dobbel. | Det vil være tap av data hvis vi konverterer dobbel til float. |
Bruker | Den skal brukes hvor mindre nøyaktighet er nødvendig og lagring er en begrensning. | Den brukes hvor mer nøyaktighet er nødvendig og krever også mer presisjon. |
Suffiks | Det bruker F eller f som et suffiks. Det er obligatorisk å legge til et suffiks hvis du erklærer en flytende variabel. | Det bruker d eller D som et suffiks. Det er valgfritt å legge til et suffiks hvis du erklærer en dobbel variabel. |
Representasjon | 28,96f eller 28,96F | 12.5 eller 12,5D eller 12,5d |
Likheter mellom flytende og dobbel datatype
- Reelle tall kan representeres av begge datatyper.
- Både flytende og doble datatyper er ikke presise, derfor er de omtrentlige verdier.
Hvilken flytende kommadatatype i Java bør vi bruke?
dobbel er mer presist enn flyte. Så hvis et mer presist og nøyaktig resultat er nødvendig, bruk dobbel. En annen grunn til å bruke dobbel er at hvis tallet ikke passer i området som tilbys av float, så bruk dobbel. Vi bør bruke float hvis vi har minnebegrensninger fordi den opptar halv plass enn dobbelt.
Vi anbefaler deg å bruke double over float hvis det ikke er minne og plassbegrensninger og når mer presisjon er nødvendig. Det er tilrådelig å gå med float, hvis minne er et problem, og resultatet med 16 presise desimalsiffer ikke er nødvendig.
De to følgende Java-programmer Vis tydelig forskjellene mellom flytende og dobbel datatype.
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 } }
Produksjon:
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 } }
Produksjon:
hvordan sjekke skjermstørrelsen
x/y = 0.3333333333333333
Gjennom de to eksemplene ovenfor er det klart at den doble datatypen tar mer minne for å lagre et tall med dobbel presisjon og gir også det mer nøyaktige resultatet opp til 16 desimaler. Mens datatypen flytende tar mindre plass for å lagre enkeltpresisjonstall, og den gir resultater på opptil 6 desimaler.