Home >Common Problem >What data type is float?
float is a floating-point data type, used to store single-precision floating-point numbers or double-precision floating-point numbers. The single-precision value of the floating-point type has 4 bytes, including a sign bit and an 8-bit binary exponent. and a 23-bit mantissa, which is not stored as a number since the high-order bit of the mantissa is always 1.
float is a floating-point data type.
The FLOAT data type is used to store single-precision floating-point numbers or double-precision floating-point numbers. Floating point numbers use the IEEE (Institute of Electrical and Electronics Engineers) format. Single-precision values of floating-point type have 4 bytes, including a sign bit, an 8-bit binary exponent, and a 23-bit mantissa. Since the high-order bit of the mantissa is always 1, it is not stored as a number. This representation gives float types a range of approximately -3.4E 38 ~ 3.4E 38 .
Composition
Difference
Variables can be declared as float or double depending on the needs of the application. The main differences between these two types are the bases in which they can be represented, the storage they require, and their scope.Value range
Floating point variables are represented by the mantissa (the value that contains the number) and the exponent (the magnitude that contains the number) . The following table shows the number of bits assigned to the mantissa and exponent for each floating-point type. The most significant bit of any float or double is always the sign bit. If the sign bit is 1, the number is treated as negative; otherwise, the number is treated as positive.Exponent and Mantissa
Since the exponent is stored in unsigned form, the exponent is biased by half of its possible value . For float types, the bias is 127; for double types, the bias is 1023. You can calculate the actual index value by subtracting the bias value from the index value. Stored as a binary fraction with a mantissa greater than or equal to 1 and less than 2. For float and double types, there is an implicit leading 1 in the mantissa at the most significant bit position, so that the mantissas are actually 24 and 53 bits long, respectively, even though the most significant bit is never stored in memory. The floating point package can store binary floating point numbers as denormalized numbers without using the storage method just introduced. A "denormalized number" is a nonzero floating-point number with a preserved exponent value, where the most significant bit of the mantissa is 0. By using a non-normalized format, the range of floating point numbers can be extended, but precision is lost. You have no control over whether floating point numbers are represented in normalized or unnormalized form; the floating point package determines the representation. The floating point package never uses the denormalized form unless the exponent becomes smaller than the smallest value that can be represented in the normalized form. The following table shows the minimum and maximum values that can be stored in variables of each floating point type. The values listed in this table apply only to normalized floating point numbers; the minimum value for unnormalized floating point numbers is smaller. Note that numbers held in 80x87 registers are always represented in 80-bit normalized form; numbers stored in 32-bit or 64-bit floating-point variables (variables of type float and long) can only be represented in denormalized form.The above is the detailed content of What data type is float?. For more information, please follow other related articles on the PHP Chinese website!