Сравнительная таблица:
Основа для сравнения | терка | двойной |
---|---|---|
точность | Одинарная точность | Двойная точность. |
Биты | 32 бита | 64 бита |
Б | 4 байта . | 8 байт. |
Приблизительный диапазон | 1, 4e-045 до 3, 4e + 038 | 4, 9e-324 до 1, 8e + 308 |
Представление битов | 1 бит представляет знак бита. 8 бит представляют экспоненту. 23 бита представляют мантиссу. | 1 бит представляет знак бита. 11 бит представляют экспоненту. 52 бита представляют мантиссу. |
точность | Менее точный. | Более точным. |
Определение поплавка
Тип с плавающей точкой является одним из типов с плавающей точкой. Тип данных с плавающей запятой имеет 32-разрядное хранилище (равное 4 байта) для переменной типа с плавающей запятой. Тип данных float указывает одинарную точность. Представление 32 бита в формате с плавающей запятой может быть объяснено как 1 бит представлен как знаковый бит, 8 бит представлены как показатель степени, а 23 бита представлены как мантисса. Максимальный диапазон типа с плавающей запятой - от 1.4e-045 до 3.4e + 038. По сравнению с двойным типом с плавающей точкой тип с плавающей точкой менее точен при математическом расчете. Давайте разберемся с плавающей точкой на примере.
#include #include int main () {float num1 = sqrt (64.23) cout << num1; } // вывод 8.00060
Как и в приведенном выше коде, вы можете заметить, что переменной с плавающей запятой num1 присваивается значение, которое является функцией sqrt (), которая возвращает квадратный корень из значения, переданного этой функции. Вы можете заметить, что когда печатается значение в num1, оно примерно соответствует точному значению, но не является точным. Давайте теперь посмотрим на пример ниже, когда та же программа выполняется с использованием double в качестве типа данных.
Определение двойного
Double - это второй тип данных с плавающей точкой. Тип данных double имеет 64-разрядное хранилище (равное 8 байтам) для переменной типа double. Он определяет двойную точность, так как его размер равен удвоенному значению. 64-битное представление типа double можно объяснить как 1 бит представляет знаковый бит, 11 бит представляет экспоненту, а оставшиеся 52 бита представляют мантиссу. Среди float и double наиболее часто используемый тип данных - double. Тип double используется при математических вычислениях, а также при необходимости идеальной точности. Математические функции sin (), cos () и sqrt () всегда возвращают двойное значение. Давайте разберемся с точностью типа данных double на примере.
#include #include int main () {double num1 = sqrt (64.23) cout << num1; } // вывод 8.0143621
Можно заметить, что вывод, полученный в примере с объяснением float, отличается от вывода, полученного в примере с объяснением double. Итак, из этого можно сказать, что результаты, полученные с помощью double, более точны по сравнению с float.
Ключевые различия между Float и Double
- Тип данных с плавающей точкой задает одинарную точность, что означает, что по сравнению с двойной он имеет меньшую точность, тогда как двойной тип определяет двойную точность, так как это просто двойная величина с плавающей точкой, его ошибка незначительна по сравнению с плавающей точкой.
- Переменная типа с плавающей запятой имеет 32-битное хранилище, тогда как переменная типа double имеет 64-битное хранилище, которое компилирует, что double больше в памяти по сравнению с плавающей запятой.
- Значение в float может варьироваться от 1, 4e-045 до 3, 4e + 038, тогда как значение типа double может варьироваться от 4, 9e-324 до 1, 8e + 308.
- Битовое представление значения с плавающей запятой напоминает, что 1 бит с плавающей запятой используется для пения, 8 бит для экспоненты и 23 бита для хранения мантиссы. С другой стороны, двойное значение напоминает, что его 1 бит используется для пения, 11 бит для экспоненты и 52 бита для хранения мантиссы.
- Следовательно, при сравнении с двойной плавающей точкой менее точным является математическое вычисление двойной.
Заключение:
Ну, как правило, вы должны использовать double, поскольку он обеспечивает точность, которая является нашим главным принципом в большинстве случаев.