logo

Float проти Double Java

На Яві, Яві.

Існує два типи типів даних з плаваючою комою:

  • Тип даних float
  • тип даних double

І float, і double представляють числа з плаваючою комою, які зберігають десяткові значення.

Тип даних з плаваючою комою Цінності Розмір (біт)* Вимоги до пам'яті (байти) Значення за замовчуванням Точність Десяткові цифри Діапазон Точність
плавати IEEE 754 із плаваючою комою 32 4 0,0f неодружений 6 десяткових цифр 3.4e-038 до 3.4e+038 Низький
подвійний IEEE 754 із плаваючою комою 64 8 0,0д Двомісний 15 десяткових цифр 1.7e-308 до 1.7e+308 Високий

*Біти розміру включають наступне:

біти плавати подвійний
Знак 1 1
Експонента 8 одинадцять
Мантиса 23 52

Одинарна точність: Він складається з один знаковий біт (S), вісім біти експоненти (E) і двадцять три біти мантиси (М).

Подвійна точність: Він складається з один знаковий біт (S), одинадцять біти експоненти (E) і п'ятьдесят-два біти мантиси (М).

Float проти Double Java

Тип даних float

Це 32-розрядне число з плаваючою комою одинарної точності IEEE 754 (стандарт для арифметики з плаваючою комою). Це означає, що він дає точність 6-7 десяткових цифр. Він використовується, якщо ми хочемо ефективно використовувати пам’ять, оскільки він займає менше пам’яті порівняно з подвійним типом даних. Щоб визначити значення з плаваючою точкою, ми повинні використовувати суфікс f або F. Його значення за замовчуванням 0,0f. За замовчуванням числа з плаваючою точкою в Java розглядаються як подвійні.

Наприклад, якщо ми визначаємо число з плаваючою точкою як:

частково похідний латекс
 float height = 167.7 

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

 float height = 167.7f or float height = 167.7F 

тип даних double

Тип даних double — це 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

Тип даних 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. Це використовує d або Д як суфікс. Додавати суфікс необов’язково, якщо ви оголошуєте подвійну змінну.
Представництво 28.96f або 28,96F 12.5 або 12.5D або 12.5d

Подібності між типом даних float і double

  • Дійсні числа можуть бути представлені обома типами даних.
  • Обидва типи даних float і double не є точними, отже, вони є приблизними значеннями.

Який тип даних з плаваючою комою в Java ми повинні використовувати?

double є більш точним, ніж float. Отже, якщо потрібен більш точний і точний результат, використовуйте подвійний. Ще одна причина використовувати подвійне число полягає в тому, що якщо число не вписується в діапазон, запропонований плаваючою точкою, використовуйте подвійне. Нам слід використовувати float, якщо у нас є обмеження пам’яті, оскільки воно займає половину простору, ніж подвійний.

Ми рекомендуємо вам використовувати double over float, якщо немає обмежень на пам’ять і простір і коли потрібна більша точність. Бажано використовувати значення з плаваючою точкою, якщо пам’ять викликає занепокоєння, а результат у 16 ​​десяткових цифр точності не потрібен.

рядок до символу

Наступні два Java програми чітко показують різницю між типом даних float і double.

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 

З наведених вище двох прикладів зрозуміло, що тип даних double займає більше пам’яті для зберігання числа подвійної точності, а також дає точніший результат до 16 десяткових цифр. Тоді як тип даних float займає менше місця для зберігання чисел одинарної точності, і він дає результати до 6 знаків після коми.