logo

Float срещу двойна Java

В Java, Java.

подчертаване на текст с css

Има два типа типове данни с плаваща запетая:

  • float Тип данни
  • двоен тип данни

И двете, float и double представляват числата с плаваща запетая, които съхраняват десетичните стойности.

Тип данни с плаваща запетая Стойности Размер (битове)* Изискване за съхранение (байтове) Стойност по подразбиране Прецизност Десетични цифри Обхват точност
плавам IEEE 754 с плаваща запетая 32 4 0.0f Неженен 6 десетични цифри 3.4e-038 to 3.4e+038 ниско
двойно IEEE 754 с плаваща запетая 64 8 0.0d Двойна 15 десетични цифри 1.7e-308 до 1.7e+308 Високо

*Битовете за размер включват следното:

битове плавам двойно
Знак 1 1
експонента 8 единадесет
Мантиса 23 52

Единична точност: Състои се от един знаков бит (S), осем експонентни битове (E) и двадесет и три мантисови битове (M).

Двойна точност: Състои се от един знаков бит (S), единадесет експонентни битове (E) и петдесет и две мантисови битове (M).

Float срещу двойна Java

float Тип данни

Това е 32-битово число с плаваща запетая с единична точност IEEE 754 (Стандарт за аритметика с плаваща запетая). Това означава, че дава 6-7 десетични цифри с точност. Използва се, ако искаме да използваме паметта ефективно, защото отнема по-малко памет в сравнение с двойния тип данни. За да дефинираме плаваща стойност, трябва да използваме суфикс f или F. Стойността по подразбиране е 0.0f. По подразбиране float числата се третират като двойни в Java.

mysql ляво присъединяване

Например, ако дефинираме плаващо число като:

 float height = 167.7 

Горната декларация на променлива float дава грешка при компилиране. Можем да коригираме грешката, като добавим суфикс f или F.

 float height = 167.7f or float height = 167.7F 

двоен тип данни

Двойният тип данни е 64-битово число с плаваща запетая IEEE 754 с двойна точност. Това означава, че дава 15-16 десетични цифри с точност. Той консумира повече памет в сравнение с типа данни float. Използва се за съхраняване на десетични стойности. Стойността му по подразбиране е 0.0d. Не е задължително да добавите суфикс d или D. Например:

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

float срещу двоен тип данни

Типът данни double е по-точен от типа данни float. Следната таблица обобщава разликите между типовете данни float и double.

Основа float Тип данни двоен тип данни
памет Заема 4 байтове. Заема 8 байтове.
точност Неговата точност е ниско . Неговата точност е Високо .
Прецизност Следва единична точност (6-7 десетични цифри). Следва двойна точност (15-16 десетични цифри).
Използвана ключова дума The плавам ключовата дума се използва за дефиниране на плаващо число. The двойно ключовата дума се използва за дефиниране на число с двойна точност.
Клас обвивка Неговият обвиващ клас е java.lang.Float. Неговият обвиващ клас е java.lang.Double.
Тип данни по подразбиране Java не го използва като число с плаваща запетая по подразбиране. Това е по подразбиране тип данни за числа с плаваща запетая.
Загуба на данни Ще има без загуба на данни ако преобразуваме float в double. Ще има загуба на данни ако преобразуваме double в float.
Употреби Трябва да се използва къде по-малка точност е необходимо и съхранението е ограничение. Използва се къде повече точност се изисква и изисква повече точност.
Наставка То използва Е или f като наставка. Задължително е да добавите суфикс, ако декларирате променлива float. То използва д или д като наставка. Не е задължително да добавите суфикс, ако декларирате двойна променлива.
Представителство 28.96f или 28,96F 12.5 или 12.5D или 12.5d

Прилики между типа данни float и double

  • Реалните числа могат да бъдат представени и от двата типа данни.
  • И двата типа данни float и double не са точни, следователно те са приблизителна стойност.

Кой тип данни с плаваща запетая в Java трябва да използваме?

double е по-точен от float. Така че, ако се изисква по-точен и точен резултат, използвайте двойно. Друга причина да използвате double е, че ако числото не се вписва в диапазона, предлаган от float, използвайте double. Трябва да използваме float, ако имаме ограничение на паметта, защото заема половин пространство от двойно.

Препоръчваме ви да използвате double over float, ако няма ограничение на паметта и пространството и когато е необходима по-голяма точност. Препоръчително е да използвате float, ако паметта ви притеснява и резултатът от 16 прецизни десетични цифри не се изисква.

Следващите две Java програми ясно показват разликите между типа данни float и double.

изброяване на java

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

Изход:

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

Изход:

 x/y = 0.3333333333333333 

Чрез горните два примера става ясно, че двойният тип данни отнема повече памет за съхраняване на число с двойна точност и също така дава по-точен резултат до 16 десетични цифри. Докато типът данни float заема по-малко място за съхраняване на числа с единична точност и дава резултати до 6 знака след десетичната запетая.