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