16.3: Floating-Point Data Type
-
- Last updated
- Save as PDF
Overview
A floating-point data type uses a formulaic representation of real numbers as an approximation so as to support a trade-off between range and precision. For this reason, floating-point computation is often found in systems which include very small and very large real numbers, which require fast processing times. A number is, in general, represented approximately to a fixed number of significant digits and scaled using an exponent in some fixed base. [1]
Discussion
The floating-point data type is a family of data types that act alike and differ only in the size of their domains (the allowable values). The floating-point family of data types represents number values with fractional parts. They are technically stored as two integer values: a mantissa and an exponent . The floating-point family has the same attributes and acts or behaves similarly in all programming languages. They can always store negative or positive values thus they always are signed; unlike the integer data type that could be unsigned. The domain for floating-point data types varies because they could represent very large numbers or very small numbers. Rather than talk about the actual values, we mention the precision . The more bytes of storage the larger the mantissa and exponent, thus more precision.
| Language | Reserved Word | Size | Precision | Range |
|---|---|---|---|---|
| C++ |
float
|
32 bits / 4 bytes | 7 decimal digits | ±3.40282347E+38 |
| C++ |
double
|
64 bits / 8 bytes | 15 decimal digits | ±1.79769313486231570E+308 |
| C# |
float
|
32 bits / 4 bytes | 7 decimal digits | ±3.40282347E+38 |
| C# |
double
|
32 bits / 4 bytes | 15 decimal digits | ±1.79769313486231570E+308 |
| Java |
float
|
32 bits / 4 bytes | 7 decimal digits | ±3.40282347E+38 |
| Java |
double
|
32 bits / 4 bytes | 15 decimal digits | ±1.79769313486231570E+308 |
| JavaScript |
Number
|
64 bits / 8 bytes | 15 decimal digits | ±1.79769313486231570E+308 |
| Python |
float()
|
64 bits / 8 bytes | 15 decimal digits | ±1.79769313486231570E+308 |
| Swift |
Float
|
32 bits / 4 bytes | 7 decimal digits | ±3.40282347E+38 |
| Swift |
Double
|
64 bits / 8 bytes | 15 decimal digits | ±1.79769313486231570E+308 |
Key Terms
- double
- The most often used floating-point family data type used.
- mantissa exponent
- The two integer parts of a floating-point value.
- precision
- The effect on the domain of floating-point values given a larger or smaller storage area in bytes.