### Comparative chart:

Basis for the comparisonPrecision | Single precision | Double precision. |

bits | 32 bit. | 64 bit. |

byte | 4 bytes. | 8 bytes. |

Approximate range | From 1.4e-045 to 3.4e + 038 | From 4.9e-324 to 1.8e + 308 |

Bit representation | 1 bit represents the sign bit. 8 bits represent the exponent. 23 bits represent the mantissa. | 1 bit represents the sign bit. 11 bits represent exponent. 52 bits represent the mantissa. |

Precision | Less accurate. | More accurate. |

### Definition of Float

A float data type one of the floating point types. The float data type has a 32-bit memory (which equals 4 bytes) for the float type variable. The float data type specifies a single precision. The 32-bit floating point representation can be explained as 1 bit represented as the sign bit, 8 bits are represented as an exponent and 23 bits are represented as mantissa. The maximum range of a float type 1.4e-045 to 3.4e + 038. When compared with the floating-point type, which is less precise during the mathematical calculation. Let's try to understand float using an example.

#include #include int main () {float num1 = sqrt (64.23) cout << num1; } // output 8.00060

As in the previous code, it is possible to observe that a mobile variable num1 is assigned a value corresponding to the function sqrt (), which returns the square root of the value passed to this function. It is possible to observe that when the value in num1 is printed close to the exact value, but not accurate. Now let's look at the example below when the same program is executed using double as a datatype.

### Definition of Double

Double the second type of floating point datatype. A double data type has 64-bit memory (which is equal to 8 bytes) for a variable of type double. Specifies the double precision as its size is only twice the size of the float. The 64-bit representation of the double type can be explained as 1 bit represents the sign bit, 11 bits represents an exponent and the remaining 52 bits represent the mantissa. Between float and double the most commonly used data type is double. The double type is used during mathematical calculation and when perfect precision is needed. The mathematical functions sin (), cos () and sqrt () always return a double value. We try to understand the accuracy of the double type of data with an example.

#include #include int main () {double num1 = sqrt (64.23) cout << num1; } // output 8.0143621

We can see that the output obtained in the example, explaining the float, differs from the output obtained in the example, explaining the double. So, from this, we can say that the results obtained by the double are more accurate than the float.

## Key differences between float and double

- The float data type specifies a single precision which means that compared to the double it has less precision while the double specifies the double precision since only the double of float, its negligible error compared to the float.
- A float type variable has a 32-bit memory, while a double type variable has a 64-bit memory that compiles twice as much in memory as compared to float.
- The value in float can vary from 1, 4e-045 to 3, 4e + 038, while the value of type double can vary from 4, 9 to 324 and 1, 88 + 308.
- The representation of the bits of a float value similar to that of 1 bit of float for the bit bit, the 8 bits for the exponent and 23 bits for storing the mantissa. On the other hand, a double value reminds that 1 bit of it used for the sing bit, the 11 bits for the exponent and 52 bits for storing the mantissa.
- When compared with the less accurate double float from here, while the double mathematical calculation is used.

### Conclusion:

Well, you generally need to use double as it provides the precision that our main bike most of the time.