logo

Float vs Double Java

Java, Java.

Yra dviejų tipų slankiojo kablelio duomenų tipai:

  • float duomenų tipas
  • dvigubas duomenų tipas

Ir plūduriuojantis, ir dvigubas reiškia slankiojo kablelio skaičius, kuriuose saugomos dešimtainės reikšmės.

Slankaus kablelio duomenų tipas Vertybės Dydis (bitais)* Saugyklos poreikis (baitai) Numatytoji reikšmė Tikslumas Dešimtainiai skaitmenys diapazonas Tikslumas
plūdė IEEE 754 slankiojo kablelio 32 4 0.0f Vienišas 6 dešimtainiai skaitmenys 3.4e-038 iki 3.4e+038 Žemas
dvigubai IEEE 754 slankiojo kablelio 64 8 0,0 d Dvigubas 15 dešimtainių skaitmenų 1.7e-308 iki 1.7e+308 Aukštas

*Dydžio bitai apima:

Bitai plūdė dvigubai
Pasirašyti 1 1
Rodiklis 8 vienuolika
Mantisa 23 52

Vieno tikslumo: Tai susideda iš vienas ženklo bitas (S), aštuoni eksponentų bitai (E) ir dvidešimt trys mantisos gabaliukai (M).

0,2 kaip trupmena

Dvigubas tikslumas: Tai susideda iš vienas ženklo bitas (S), vienuolika eksponentų bitai (E) ir Penkiasdešimt du mantisos gabaliukai (M).

Float vs Double Java

float duomenų tipas

Tai 32 bitų vieno tikslumo IEEE 754 (Slankiojo kablelio aritmetikos standartas) slankiojo kablelio skaičius. Tai reiškia, kad jis suteikia 6-7 skaitmenų po kablelio tikslumą. Jis naudojamas, jei norime efektyviai naudoti atmintį, nes užima mažiau atminties, palyginti su dvigubo tipo duomenų tipu. Norėdami apibrėžti slankiąją reikšmę, turime naudoti priesagą f arba F. Jo numatytoji reikšmė yra 0.0f. Pagal numatytuosius nustatymus plūduriuojantys skaičiai „Java“ laikomi dvigubais.

jquery spustelėjus

Pavyzdžiui, jei apibrėžiame slankųjį skaičių taip:

 float height = 167.7 

Aukščiau pateikta slankiojo kintamojo deklaracija suteikia kompiliavimo klaidą. Klaidą galime ištaisyti pridėdami priesagą f arba F.

 float height = 167.7f or float height = 167.7F 

dvigubas duomenų tipas

Dvigubas duomenų tipas yra 64 bitų dvigubo tikslumo IEEE 754 slankiojo kablelio skaičius. Tai reiškia, kad jis suteikia 15-16 skaitmenų po kablelio tikslumą. Tai sunaudoja daugiau atminties, palyginti su plūduriuojančių duomenų tipu. Jis naudojamas dešimtainėms reikšmėms saugoti. Jo numatytoji reikšmė yra 0,0 d. Neprivaloma pridėti priesagą d arba D. Pavyzdžiui:

 double price = 987.90D or double price = 987.90d or double price = 987.90 

float Vs double Data Type

Dvigubas duomenų tipas yra tikslesnis nei plaukiojantis duomenų tipas. Šioje lentelėje apibendrinami skirtumai tarp slankiųjų ir dvigubų duomenų tipų.

Pagrindas float duomenų tipas dvigubas duomenų tipas
Atmintis Tai užima 4 baitų. Tai užima 8 baitų.
Tikslumas Jo tikslumas yra žemas . Jo tikslumas yra aukštas .
Tikslumas Iš to seka vienkartinis tikslumas (6–7 skaitmenys po kablelio). Iš to seka dvigubas tikslumas (15–16 skaitmenų po kablelio).
Naudotas raktinis žodis The plūdė raktinis žodis naudojamas slankiajam skaičiui apibrėžti. The dvigubai raktinis žodis naudojamas dvigubo tikslumo skaičiui apibrėžti.
Įvyniojimo klasė Jo įvyniojimo klasė yra java.lang.Float. Jo įvyniojimo klasė yra java.lang.Dvigubas.
Numatytasis duomenų tipas Java nenaudoja jo kaip numatytojo slankiojo kablelio skaičiaus. Tai yra numatytas duomenų tipas slankiojo kablelio skaičiams.
Duomenų praradimas Bus nėra duomenų praradimo jei plūdę konvertuosime į dvigubą. Bus duomenų praradimas jei dvigubą paverčiame plūduriuojančia.
Naudoja Jis turėtų būti naudojamas kur mažesnis tikslumas reikalinga, o saugojimas yra apribojimas. Jis naudojamas kur daugiau tikslumo reikalingas ir taip pat reikalauja daugiau tikslumo.
Priesaga Tai naudoja F arba f kaip priesaga. Privaloma pridėti priesagą, jei deklaruojate kintamąjį. Tai naudoja d arba D kaip priesaga. Neprivaloma pridėti priesagą, jei deklaruojate dvigubą kintamąjį.
Atstovavimas 28.96f arba 28,96 F 12.5 arba 12.5D arba 12,5 d

Slankaus ir dvigubo duomenų tipo panašumai

  • Tikrieji skaičiai gali būti pateikiami abiejų tipų duomenimis.
  • Tiek plūduriuojančių, tiek dvigubų duomenų tipai nėra tikslūs, todėl jie yra apytikslės reikšmės.

Kurį „Java“ slankiojo kablelio duomenų tipą turėtume naudoti?

double yra tikslesnis nei float. Taigi, jei reikia tikslesnio ir tikslesnio rezultato, naudokite dvigubą. Kita priežastis naudoti dvigubą – jei skaičius netelpa į plūdės siūlomą diapazoną, naudokite dvigubą. Turėtume naudoti float, jei turime atminties apribojimą, nes jis užima pusę vietos nei dvigubai.

Rekomenduojame naudoti dvigubą plūdę, jei nėra atminties ir vietos apribojimų ir kai reikia daugiau tikslumo. Patartina eiti su plūduriu, jei rūpi atmintis, o rezultato 16 tikslumo po kablelio nereikia.

Tolesni du Java programos aiškiai parodyti skirtumus tarp plūduriuojančių ir dvigubų duomenų tipų.

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 } } 

Išvestis:

 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 } } 

Išvestis:

baitų masyvas į eilutę
 x/y = 0.3333333333333333 

Iš pirmiau pateiktų dviejų pavyzdžių aišku, kad dvigubo tipo duomenų tipas užima daugiau atminties, kad būtų išsaugotas dvigubo tikslumo skaičius, be to, gaunamas tikslesnis rezultatas iki 16 skaitmenų po kablelio. Nors plūduriuojančių duomenų tipas užima mažiau vietos vieno tikslumo skaičiams saugoti, o rezultatai pateikiami iki 6 skaičių po kablelio.