Home >Common Problem >What data type is float?

What data type is float?

coldplay.xixi
coldplay.xixiOriginal
2020-07-24 15:37:2937947browse

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.

What data type is float?

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

  • ##Floating point numbers are expressed in exponential form in the machine and are decomposed into four parts: number sign, mantissa, exponent sign, and exponent. .

  • The number symbol occupies 1 binary digit and represents the positive or negative number.

  • The exponent sign occupies 1 binary digit, indicating the positive or negative of the exponent.

  • The mantissa represents the valid digits of the floating point number, 0.xxxxxxx, but the leading 0 and dot are not stored.

  • The exponent stores the valid digits of the exponent.

  • The number of digits occupied by the exponent and the number of digits occupied by the mantissa are determined by the computer system.

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

What data type is float?

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

What data type is float?

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn