Difference between Float , double and long double
Float ,double and long double are primitive data types used by programming languages to store floating-point real (decimal) numbers like 10.158769, 389.547235 and so on.
In the computing world, numeric data is represented in fixed and floating numbers. There are three floating point types: float, double and long double . The type double provides at least as much precision as float, and the type long double provides at least as much precision as double . The set of values of the type float is a subset of the set of values of the type double ; the set of values of the type double is a subset of the set of values of the type long double
Ø It is generally used for graphic based libraries for making the processing power of your programs faster, as it is simpler to manage by compilers.
Ø It has single precision.
Ø According to IEEE, it has a 32-bit floating point precision.
Ø Float takes 4 bytes for storage.
Ø Has a precision of 6 decimal places.
Ø This is the most commonly used data type in programming languages for assigning values having a real or decimal based number within, such as 3.14 for pi.
Ø It has the double precision or you can say two times more precision than float.
Ø According to IEEE, it has a 64-bit floating point precision.
Ø Double takes 8 bytes for storage.
Ø Has a precision of 15 decimal places.
Ø Long double takes 10 bytes for storage
Ø Has a precision of 18 decimal places
Ø According to IEEE, it has a 128-bit floating point precision.
Ø Long double is more precise than double float
In programming language that uses numeric data, the data types are to be considered on the basis of precision and storage. So if the program needs a precise answer it is better to switch with long double and double. And if the program requires a data type with less storage it is better to hold with float data type.
Double VS Float in C++ – The Difference Between Floats and Doubles

Ihechikara Vincent Abba

In C++, there are various data types like string , int , char , bool , float , and double . Each of these data types have specific values that can be stored in them.
When working with integers, we usually store them in an int data type. But this is only useful for whole numbers.
When we want to store numbers with decimals, we can either use the float or double . Though these two data types are used for a similar purpose, they have some differences.
In this article, we’ll talk about the differences between floats and doubles in C++ along with some examples.
Difference Between Floats and Doubles
This section will be divided into sub-sections with each section focusing on one difference between floats and doubles.
Difference in Byte Size
The byte size for float is 4 while the byte size for double is 8.
This implies that double can store values that are twice the amount that float can hold.
We can see this by using the sizeof() operator. Here is an example:
Difference in Precision (Accuracy)
When working with numbers that have a lot of decimal digits, we usually hope that the resulting value will be accurate. But the accuracy of our result is dependent on the number of decimal digits we are dealing with.
Don’t worry, we’re still talking about C++, not mathematics.
float and double both have varying capacities when it comes to the number of decimal digits they can hold. float can hold up to 7 decimal digits accurately while double can hold up to 15.
Let’s see some examples to demonstrate this.
In the example above, we created float and double variables – both having the same value: 5.12345678987 .
The setprecision() function is used to tell the compiler the number of decimal places we want printed out. In our case, the value is 7.
We can observe from the results in the code above, that both variables printed accurate values up to the 7th decimal place: 5.123457 .
Let’s increase the parameter in the setprecision() function to 12 and see what happens.
From the results above, the MY_DOUBLE_VALUE variable printed out accurate values. But the MY_FLOAT_VALUE variable, from its 7th decimal place, printed out values entirely different from the original value it was given.
This shows us the precision of both data types. Just like float , if we try to return a value that exceeds the accuracy range for the double data type, we will get an inaccurate value returned.
Difference in Usage
float is mostly used in graphic libraries for high processing power due to its small range.
double is mostly used for calculations in programming to eliminate errors when decimal values are being rounded off. Although float can still be used, it should only be in cases when we’re dealing with small decimal values. To be on the safe side, you should always use double .
Conclusion
In this article, we talked about the differences between floats and doubles in C++.
We talked about three differences: byte size, precision, and usage.
We also learned that doubles have twice the byte size of floats. Also, doubles are more accurate when dealing with large decimal values.
Lastly, we talked about use cases which helped us understand when to use each data type.
Float и Double — какой из них я должен использовать?
Многие новички-программисты / студенты, обучающиеся в области компьютерных наук, задают часто задаваемые вопросы, имеющие отношение к конкретной области в области компьютерных наук, которые они изучают. Большинство начинающих курсов начинаются с тем номера системы, который используется на современных компьютерах, включая двоичный , десятичный , восьмеричный а также шестнадцатеричный система. Это форматы номеров компьютеров, которые являются внутренними представлениями числовых значений на компьютерах (или калькуляторах и любых других цифровых компьютерах). Эти значения сохраняются как «группировка бит».
Поскольку мы знаем, что компьютеры представляют данные в наборах двоичных цифр (т. Е. В комбинации 1s а также 0s, такие как, 1111 представляет собой 15 в десятичной системе), имеет смысл преподавать различные форматы чисел, которые используются для представления динамического диапазона значений, поскольку они составляют основные блоки обработки вычислений / число в любой операции. Как только система чисел определена в классе (часто плохо), у студентов возникает желание перейти на разные форматы чисел в одном и том же типе (т. Е. арифметика с плавающей запятой ), которые имеют определенную точность и диапазон чисел. Таким образом, они вынуждены изучать нюансы между определенными типами. Два из наиболее часто используемых типов данных: терка а также двойной , и в то время как они нацелены на одни и те же потребности (то есть, арифметика с плавающей запятой ), в их внутреннем представлении и общем влиянии на расчет в программе есть определенная разница. К сожалению, многие программисты пропускают нюансы между плоскими и двойными типами данных и в конечном итоге злоупотребляют ими в тех местах, где их не следует использовать в первую очередь. В конечном итоге это приводит к просчетам в других частях программы.
В этой статье я расскажу вам разницу между float и double с примерами кода на языке программирования C. Давайте начнем!
Поплавок против Двойного … В чем дело?
Float и Double — это представление данных, которое используется для арифметических операций с плавающей запятой, подумайте о десятичных числах, которые вы вычисляете в классе математики, например, 20.123, 16.23, 10.2и т. д., они не являются целыми числами (т. 2, 5, 15и т. д.), поэтому они требуют рассмотрения фракций в двоичном формате. В результате десятичные числа (т. Е. 20.123, 16.23, и т. д.) не может быть легко представлен нормальным двоичным форматом (т. е. Integer). Основное различие между Float и Double заключается в том, что первое представляет собой данные с плавающей запятой с единственной точностью (32-разрядные), в то время как второй тип данных с плавающей точкой двойной точности (64-разрядная). Двойной называется «двойным», потому что это в основном версия с двойной точностью Float. Если вы вычисляете огромную сумму (думайте о тысячах 0 в номере), тогда неточности будут меньше в Double, и вы не потеряете много точности.
Лучше проработать с использованием примеров кода. Ниже приведена операция по Float и Double через математические функции, предоставляемые на языке C:
Урок №33. Типы данных с плавающей точкой: float, double и long double
На этом уроке мы рассмотрим типы данных с плавающей точкой в языке С++, их точность и диапазон. Выясним, что такое экспоненциальная запись и как она используется, а также рассмотрим ошибки округления и дадим определения для nan и inf .
Типы данных с плавающей точкой
Целочисленные типы данных отлично подходят для работы с целыми числами, но есть ведь еще и дробные числа. И тут нам на помощь приходит тип данных с плавающей точкой (или «тип данных с плавающей запятой», англ. «floating point»). Переменная такого типа может хранить любые действительные дробные значения, например: 4320.0, -3.33 или 0.01226. Почему точка «плавающая»? Дело в том, что точка/запятая перемещается («плавает») между цифрами, разделяя целую и дробную части значения.
Есть три типа данных с плавающей точкой: float, double и long double. Язык C++ определяет только их минимальный размер (как и с целочисленными типами). Типы данных с плавающей точкой всегда являются signed (т.е. могут хранить как положительные, так и отрицательные числа).
| Тип | Минимальный размер | Типичный размер | |
| Тип данных с плавающей точкой | float | 4 байта | 4 байта |
| double | 8 байт | 8 байт | |
| long double | 8 байт | 8, 12 или 16 байт |
Объявление переменных разных типов данных с плавающей точкой:
Если нужно использовать целое число с переменной типа с плавающей точкой, то тогда после этого числа нужно поставить разделительную точку и нуль. Это позволяет различать переменные целочисленных типов от переменных типов с плавающей запятой:
Обратите внимание, литералы типа с плавающей точкой по умолчанию относятся к типу double. f в конце числа означает тип float.
Экспоненциальная запись
Экспоненциальная запись очень полезна для написания длинных чисел в краткой форме. Числа в экспоненциальной записи имеют следующий вид: мантисса × 10 экспонент . Например, рассмотрим выражение 1.2 × 10 4 . Значение 1.2 — это мантисса (или «значащая часть числа»), а 4 — это экспонент (или «порядок числа»). Результатом этого выражения является значение 12000.
Обычно, в экспоненциальной записи, в целой части находится только одна цифра, все остальные пишутся после разделительной точки (в дробной части).
Рассмотрим массу Земли. В десятичной системе счисления она представлена как 5973600000000000000000000 кг . Согласитесь, очень большое число (даже слишком большое, чтобы поместиться в целочисленную переменную размером 8 байт). Это число даже трудно читать (там 19 или 20 нулей?). Но используя экспоненциальную запись, массу Земли можно представить, как 5.9736 × 10 24 кг (что гораздо легче воспринимается, согласитесь). Еще одним преимуществом экспоненциальной записи является сравнение двух очень больших или очень маленьких чисел — для этого достаточно просто сравнить их экспоненты.
В языке C++ буква е / Е означает, что число 10 нужно возвести в степень, которая следует за этой буквой. Например, 1.2 × 10 4 эквивалентно 1.2e4 , значение 5.9736 × 10 24 еще можно записать как 5.9736e24 .
Для чисел меньше единицы экспонент может быть отрицательным. Например, 5e-2 эквивалентно 5 * 10 -2 , что, в свою очередь, означает 5 / 10 2 или 0.05 . Масса электрона равна 9.1093822e-31 кг .
На практике экспоненциальная запись может использоваться в операциях присваивания следующим образом: