Java float против Double | 7 лучших полезных сравнений для изучения

Обновлено 20 июня 2023 г.

Тип данных float — это 32-разрядное число с плавающей запятой одинарной точности IEEE 754. Диапазон значений выходит за рамки этого обсуждения, но в основном он указан в разделе «Типы, форматы и значения с плавающей запятой» Спецификации языка Java. Тип данных double представляет собой 64-разрядное число с плавающей запятой двойной точности IEEE 754. Его диапазон значений выходит за рамки этого обсуждения, но указан в разделе «Типы, форматы и значения с плавающей запятой» Спецификации языка Java.

Число с плавающей запятой в основном используется для экономии памяти в больших массивах чисел с плавающей запятой. Мы должны помнить, что тип данных, такой как валюта, никогда не должен использоваться для точных значений. Тип данных double обычно используется по умолчанию для десятичных значений. Тип данных никогда не следует использовать для точных значений, таких как валюта.

Значения по умолчанию:

Тип данных Значение по умолчанию (для полей)
поплавок 0.0f
двойной 0.0d

Тип данных с плавающей запятой в Java хранит десятичное значение с точностью до 6-7 цифр. Так, например, 12,12345 можно сохранить как число с плавающей запятой, но 12,123456789 нельзя сохранить как число с плавающей запятой. При представлении типа данных float в Java мы должны добавлять букву f в конец типа данных; в противном случае он будет сохранен как двойной.

Тип данных Double хранит десятичные значения с точностью 15-16 цифр. Значение по умолчанию — 0,0d; если вы не добавите f или d в конец десятичного числа, значение будет сохранено как двойное в Java.

Прямое сравнение между Java float и Double (инфографика)

Ниже приведены 7 основных сравнений между Java float и Double:

Ключевые различия между Java float и Double

объясните основные различия между Java float и Double:

  • Тип данных double более точен, чем float в Java. По умолчанию числа с плавающей запятой в Java имеют двойное значение. Чтобы сохранить их в переменной с плавающей запятой, вам нужно привести их явно или добавить суффикс «f» или «F».
  • Float использует 1 бит для знака, 8 бит для экспоненты и 23 бита для мантиссы, а double использует 1 бит для знака, 11 бит для экспоненты и 52 бита для мантиссы.
  • Мы можем учесть некоторые важные моменты при выборе Java float и Double. Мы также можем столкнуться с некоторыми ситуациями, когда нам нужно использовать определенный тип данных до тех пор, пока вы не почувствуете, что ваш результат не подходит для float, тогда в этой ситуации вы можете выбрать double.
  • Java float и Double являются приблизительными типами, но различаются объемом памяти и другими вещами.
  • Если вы хотите сравнить Java и float, всегда отдавайте предпочтение Big Decimal, а при работе с конструктором Big Decimal вам нужно использовать строковый параметр.

Сравнительная таблица Java float и Double

Ниже приведена сравнительная таблица между Java float и Double.

Основание для Сравнение Поплавок Java Двойной
Определение Тип данных float является 32-разрядным с одинарной точностью. Тип данных double является 64-разрядным с двойной точностью.
Применение
Меньшая точность.
Больше точности.
Преимущества Обширные библиотеки поддержки, открытый исходный код и разработка сообщества. Больше возможностей для веб-разработки и веб-ориентированности.
Хранение Число с плавающей запятой нуждается в 32-битном хранилище (для хранения переменной требуется всего 4 байта).  Double требуется 64-битное хранилище (для хранения переменной требуется 8 байт).
Академики Число с плавающей запятой — это 32-битное число с плавающей запятой IEEE 754.
Двойное число — это 64-битное число с плавающей запятой IEEE 754.
Точность Точность с плавающей запятой составляет от 6 до 7 десятичных цифр. Double может обеспечить точность до 15-16 знаков после запятой.
Диапазон Float имеет меньший диапазон по сравнению с double. Двойной имеет более высокий диапазон.

Заключение

Хотя и float, и Double в Java могут представлять числа с плавающей запятой, мы можем рассмотреть несколько вещей, чтобы выбрать между float и double в Java. Хотя оба Java float и Double являются приблизительными типами, используйте double, если вам нужны более точные и точные результаты. Используйте float, если у вас есть ограничения по памяти, потому что он занимает почти вдвое меньше места, чем double. Используйте double, если ваши числа не помещаются в диапазон, предлагаемый float. Будьте осторожны с вычислениями и представлениями с плавающей запятой, не используйте double или float для денежных вычислений; вместо этого используйте Big Decimal.

Вот и вся разница между float и double в Java. Помните, что по умолчанию числа с плавающей запятой в Java являются двойными; если вы хотите сохранить их в переменной с плавающей запятой, вы должны либо привести их явно, либо указать их достаточно, используя символ «f» или «F». И Java float, и Double представляют действительные числа в Java, то есть числа с дробями или десятичными точками. Было бы лучше, если бы вы использовали логический оператор, например. >

или < для сравнения переменных Java float и Double вместо = и ! = потому что они неточны.

Также рекомендуется выбирать тип данных, который занимает меньше памяти, если этого достаточно для данных, которые вы храните, поэтому выбирайте float, а не double, если вас устраивает точность и диапазон; Однако double более точен, чем float. Double и float не используются для представления значений, требующих очень высокой точности. Так, например, для хранения денежных значений не рекомендуется использовать double или float; вместо этого в Java есть класс Big Decimal, который указывает точное количество цифр после запятой, включая округление в большую или меньшую сторону.