Home  >  Article  >  Backend Development  >  A brief introduction to integer types and floating point numbers in PHP data types

A brief introduction to integer types and floating point numbers in PHP data types

怪我咯
怪我咯Original
2017-07-11 14:03:011474browse

In fact, we have been writing integer types. We have written 123, my age is 12, which is an integer type, or -123, which all represent integer types. Then what we write are all decimal, and What numerical values ​​can be written? You can write octal numbers and hexadecimal numbers, which all represent integers. Then we also need to know a storage range of the integer type.

As for the storage range of integers, signed: -2.1 billion, just remember a rough range, between positive 2.1 billion; -200 million ~ 2.1 billion.

What about unsigned ones; that is 0 to 4.2 billion; 0 to 4.2 billion;

Floating point type (also called floating point number float, double precision number double or real number real).

Floating point numbers have limited precision. Although it depends on the system, PHP usually uses the IEEE 754 double format, so the maximum relative error due to rounding is 1.11e-16. Non-basic mathematical operations may give larger errors, and error propagation when doing compound operations needs to be taken into account.

In addition, rational numbers that can be accurately represented in decimal, such as 0.1 or 0.7, no matter how many mantissas there are, cannot be accurately represented by the binary used internally, and therefore cannot be converted to binary without losing a little bit of precision. Format. This can lead to confusing results: for example, floor((0.1+0.7)*10) will usually return 7 instead of the expected 8 because the internal representation of the result is actually something like 7.9999999999999991118... .

So never believe that the floating point number result is accurate to the last digit, and never compare whether two floating point numbers are equal.

This article introduces the introduction of PHP data types to integer types and floating point numbers. Friends who need it can refer to

Syntax: Integer values ​​can be expressed in decimal, hexadecimal or octal, and can be preceded by an optional symbol (- or +). Octal represents a number that must be preceded by 0 (zero), and hexadecimal represents a number that must be preceded by 0x.

$int1=100; //Decimal number
$int2=-123; //Negative number
$int3=0123; //Octal number
$int4=0x1A;//Sixteen Base number

echo PHP_INT_SIZE; //Display an integer represented by several bytes
echo "
";
echo PHP_INT_MAX;echo "
";//The maximum number of integers (2147483647)
$fmax=2147483648;
var_dump(PHP_INT_MAX); //A number beyond the range of integer will be interpreted as float type.
echo "
";
var_dump($fmax);

Floating point number: Floating point number (double precision number or real number)
$a=1.34;
$b=1.8e308;
$c=8e-10;
var_dump($b);
//The word length of floating point numbers is platform-dependent, although Usually the maximum value is 1.8e308 and has a precision of 14 decimal digits (cannot exceed 14 digits)
//The precision is calculated from the first non-0 digit starting from the left.

For example: $a=567.9999899 //Output 567.9999899

$b=789.8812345678543 //Output 789.88123456785

$c=0.000000008907777777 //Output 0.000000008907 777777

Important understanding: accuracy Calculate from the first non-0 number starting from the left.

The above is the detailed content of A brief introduction to integer types and floating point numbers in PHP data types. 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