## What is Float & Double?

Data can be broadly classified into two types: numeric and non-numeric data. Characters and strings are examples of non-numeric data. Whole numbers and floating-point numbers make up numerical data. Whole numbers, as the name implies, have only one portion - no fractions are involved. Floating-point numbers, on the other hand, are pre-programmed with a fractional and a whole portion. Whole numbers are allocated multiple data types based on the magnitude of the data requested, which can be employed depending on the needs. Similarly, depending on the magnitude of the number - particularly the fractional part - several data types might be allocated to floating-point numbers. Floating-point numbers are represented by the terms Float and Double.

## 4 Differences b/w Float vs Double in Java

### Size

A float is 32 bits in length, while a double is 64 bits. As a result, double is capable of handling far larger fractional numbers than float. The allocation of bits for the representation of the number differs. The sign of the number is represented by one bit in both float and double. The allocation of bits for the mantissa and the exponent, however, differs. The mantissa is allocated 23 bits in float, while it is allocated 52 bits in double. Similarly, the exponent in float is 7 bits, while the exponent in double is 11 bits.

### Precision

The precision of float is limited to 7 bits. Double gives the exponent nearly twice as many bits, allowing it to accommodate up to 15 bits of precision. When working with a float, having an exceptionally small exponent size means there is some data compression. Data compression unavoidably results in the loss of some bits. When using a float, the loss of bits from the end of the integer is particularly noticeable. Because of the enormous number of bits allotted for the exponent, the amount of bits lost is substantially lower when using double.

### Default

Java's default data type for dealing with fractional numbers is double. The character 'f' or 'F' must be suffixed to the integer to force Java to utilise the float data type. This can also be accomplished by forcibly typecasting the number to float at the time of initialization by prefixing (float) to the number.

### Wrapper Class

The primitive types float and double are both wrapper classes. This means they'll have wrapper classes that enable them to be used as object types. The float wrapper class in java.lang. Float is the wrapper class for double, while java.lang is the wrapper class for double. Double.

## When to use Float and Double in Java?

When speed is more critical than accuracy, the float is used. While our day-to-day programmes do not require massive computations, this gap becomes relevant in practical applications. Also, when the number of decimal digits necessary is known, the float is commonly utilised. In practically all other circumstances, double is utilised, especially where precision is critical. Keep in mind that when dealing with floating-point numbers, Java requires the usage of double as the default data type.

## Conclusion

Java has two data types for working with floating-point numbers: float and double (or fractional numbers). While they may appear to be similar, they are vastly different in actuality. Float versus Double in Java programming is summarised in our article on the fundamental distinctions between these two data types.