Java float og dobbel sammenligning
Float og doble typer er to forskjellige formater for å representere reelle tall i Java. De blir begge referert til som flytende punkttyper. Et reelt tall i matematikk er et helt tall og en desimal del. For eksempel 23.75 er et reelt tall. Hele talldelen er 23 og desimaldelen er 75. Hvis desimaldelen er ".0 ”, er det reelle tallet 23.0, da er det virkelige tallet et heltall. Heltall er et undersett av reelle tall. En rekke reelle tall fra den minste til den største verdien ville ha heltall innen. For eksempel utvalget av reelle tall fra -3.5 til +3.5 har heltallene, -3, -2, -1, 0, +1, +2 og +3, innenfor. Ikke glem at desimaldelen av et reelt tall er en skikkelig brøkdel. For eksempel .75 er 3/4.
Som sett fra ovennevnte rekkevidde, som er fra -3.5 til +3.5, et tall kan være positivt eller negativt. Et tall uten skiltet kalles det absolutte nummeret. Det absolutte antallet -2.5 er 2.5. Det absolutte antallet +2.5 er 2.5. Det absolutte tallet er det positive tallet.
Antallet, 23.75 kan være representert med en flottør eller en dobbel. Så hvordan kommer forskjellen til? Svaret på dette kan verdsettes ved å prøve å svare på spørsmålet: hvor mange tall er det mellom 2 og 3, inkludert (inkludert 2 og 3)? Faktisk er antall tall mellom 2 og 3 uendelige. Så float eller doble tall er et sett med tall i et område, da uendelige tall ikke kan bestemmes. For samme område er det flere doble tall, med kortere intervaller mellom hvert påfølgende par av tall.
Denne artikkelen sammenligner flyter og dobler i Java, som begynner med en tenkt tilsvarende typer kalt flot og tvil.
Imaginære tilsvarende typer
La oss utvikle våre egne imaginære tilsvarende typer som kalles flot og tvil, tilsvarende float og dobbel.
Flot
La oss ha tre tall mellom 2 og 3 med flottypen. La oss ha tallene, 2.25, 2.5, og 2.75. Så det eneste flottallet mellom 2 og 3 inkluderende, er 2, 2.25, 2.5, 2.75 og 3. Som det fremgår av dette området, er det minste absolutte tallet i hele flotsettet 0.25, som også er forskjellen mellom to påfølgende tall. (For å ha tallene fra 3 til 4, fortsett bare å legge til 0.25).
Tvil
La oss ha syv tall mellom 2 og 3 med dukketype med syv tall mellom 2 og 3. La oss ha tallene, 2.125, 2.25, 2.375, 2.5, 2.625, 2.75, 2.875. Så de eneste dub -tallene mellom 2 og 3 inkluderende, er 2, 2.125, 2.25, 2.375, 2.5, 2.625, 2.75, 2.875 og 3. Som det fremgår av dette området, er det minste absolutte tallet i hele Doub -settet, 0.125, som også er forskjellen mellom to påfølgende tall. (For å ha tallene fra 3 til 4, fortsett bare å legge til 0.125). Dette tallet er mindre enn 0.25 for flot.
Feilmargin
Merk at påfølgende tall for Doub er mindre i intervall enn påfølgende tall for flot.
Det nøyaktige antallet tall innen en rekke flots eller Dougs kan ikke bestemmes, da alle tallene i området er uendelig. Så det er en feilmargin for et hvilket som helst gitt antall, inkludert heltall, for eksempel 2 eller 3, for noen av disse typene.
For flots, for et hvilket som helst gitt, er tallet nøyaktig til innen, + eller - 1/4 (i.e. 0.25). Så et flotnummer på 2.5, ligger faktisk et sted mellom 2.375 og 2.675. Et flotnummer på 3, ligger faktisk et sted mellom 2.875 og 3.125. Det faktiske antallet (presisjon) kan aldri bestemmes. Selv et heltall av en flottype er et tall som ikke er veldig sikker.
For dus, for et hvilket som helst tall som er gitt, er tallet nøyaktig til innen + eller -1/8 (0.125). Så et DOUB -nummer på 2.5, ligger faktisk et sted mellom 2.4375 og 2.5625. Et tvilnummer på 3, ligger faktisk et sted mellom 2.9375 og 3.0625. Det faktiske antallet (presisjon) kan aldri bestemmes. Selv et heltall av en due -type er et tall som ikke er veldig sikker. Legg merke til at et tvilnummer har mer presisjon enn et flotnummer.
Flyte- og doble typer i Java er tilsvarende lik disse imaginære flot- og dubetypene. Intervallene deres er tilsvarende mindre.
Sammenligning av float og dobbel ordentlig i java
Float er kjent som en enkelt presisjonstype. Dobbelt er kjent som en dobbel presisjonstype. Et flottørnummer okkuperer 32 biter (fire byte). Et dobbelt tall okkuperer 64 biter (åtte byte). Begge tallene representerer reelle tall i Java, med den doble typen med mindre intervaller mellom påfølgende tall. Begge typene kan aldri gi et eksakt tall. Imidlertid har dobbelt mindre toleranse enn flottøren. Begge typene er faktisk basert på formater av IEEE 754.
Området for dobbelttypen fra dens negative ende til den positive enden, er bredere enn området for flyttypen, fra dens negative ende til den positive enden.
Flyte
Det minste normaliserte positive antallet av float-typen er 2-126. Det største positive tallet for flottøren er (2 - 2-23) × 2127. Settet med float-tall kan forestille seg som å legge til 2-126 gjentatte ganger fra den negative enden til den positive enden.
En float -tallverdi skal ende med 'F', som følgende program viser:
public class theclassUtgangen er:
23.75
Dobbelt
Det minste normaliserte positive antallet av dobbelttypen er 2-1022, mindre enn flyten. Det største positive tallet for dobbelt er (2 - 2-52) × 21023. Settet med doble tall kan forestilles som å legge til 2-1022 gjentatte ganger fra den negative enden, til den positive enden.
En dobbelt tallverdi slutter ikke med 'F' eller 'D' eller 'R', som følgende program viser:
public class theclassUtgangen er:
23.75
men med mindre toleranse margin, enn med flottøren ovenfor.
Float and Double er primitive typer. Og så må ingen klasse importeres til programmet av programmereren for at de skal brukes.
Nan
Nan står for ikke-en-nummer. Tenk på følgende program:
public class theclassProgrammet sammenstiller uten problemer, men utsteder følgende feilmelding, når du kjører:
Unntak i tråden “Main” Java.lang.Aritmeticexception: / med null
på Theclass.Hoved (TheClass.Java: 3)
Den ugyldige operasjonen her er, null delt-for-null. Resultatet er NAN, selv om det ble utstedt en feilmelding. Dette gjelder både flyter og dobbelt. Andre ugyldige operasjoner, resulterer i NAN.
Konklusjon
Float er kjent som en enkelt presisjonstype. Dobbelt er kjent som en dobbel presisjonstype. Et flottørnummer okkuperer 32 biter (fire byte). Et dobbelt tall okkuperer 64 biter (åtte byte). Begge typer representerer reelle tall i Java, med den doble typen med mindre intervaller mellom påfølgende tall, og er mer presis.
Chrys