PHP Numbers
In this chapter we will look in depth into Integers, Floats, and Number Strings.
PHP Numbers
There are three main numeric types in PHP:
Integer
Float
Number Strings
In addition, PHP has two more data types used for numbers:
Infinity
NaN
Variables of numeric types are created when you assign a value to them:
Example
$a = 5;
$b = 5.34;
$c = "25";
To verify the type of any object in PHP, use the
var_dump()
function:
PHP Integers
The PHP is_int()
function is used to check if the type of a variable is integer.
An integer is a number without any decimal part: 2, 256, -256, 10358, -179567 are all integers.
Example
Check if a variable is of type integer:
$x = 5985;
var_dump(is_int($x));
$x = 59.85;
var_dump(is_int($x));
Try it Yourself »
An integer data type is a non-decimal number between -2147483648 and 2147483647 in 32 bit systems, and between -9223372036854775808 and 9223372036854775807 in 64 bit systems. A value greater (or lower) than this, will be stored as float, because it exceeds the limit of an integer.
Note: Another important thing to know is that even if 4 * 2.5 is 10, the result is stored as float, because one of the operands is a float (2.5).
Here are some rules for integers:
- An integer must have at least one digit
- An integer must NOT have a decimal point
- An integer can be either positive or negative
- Integers can be specified in three formats: decimal (base 10), hexadecimal (base 16 - prefixed with 0x), octal (base 8 - prefixed with 0) or binary (base 2 - prefixed with 0b)
PHP has the following predefined constants for integers:
PHP_INT_MAX
- The largest integer supportedPHP_INT_MIN
- The smallest integer supportedPHP_INT_SIZE
- The size of an integer in bytes
PHP Floats
The PHP is_float()
function is used to check if the type of a variable is float.
A float is a number with a decimal point or a number in exponential form: 2.0, 256.4, 10.358, 7.64E+5, 5.56E-5 are all floats.
Example
Check if a variable is of type float:
$x = 10.365;
var_dump(is_float($x));
Try it Yourself »
The float data type can commonly store a value up to 1.7976931348623E+308 (platform dependent), and have a maximum precision of 14 digits.
PHP has the following predefined constants for floats (from PHP 7.2):
PHP_FLOAT_MAX
- The largest representable floating point numberPHP_FLOAT_MIN
- The smallest representable positive floating point numberPHP_FLOAT_DIG
- The number of decimal digits that can be rounded into a float and back without precision lossPHP_FLOAT_EPSILON
- The smallest representable positive number x, so that x + 1.0 != 1.0
PHP Infinity
The PHP is_finite()
function checks whether a value is finite or not.
A value is finite if it is within the allowed range for a PHP float on this platform.
The PHP is_infinite()
function checks whether a value is infinite or not.
The value is infinite if it is outside the allowed range for a PHP float on this platform.
Example
Check if a numeric value is infinite:
$x = 1.9e411;
var_dump(is_infinite($x));
Try it Yourself »
PHP NaN
NaN
stands for Not a Number.
NaN
is used for impossible mathematical operations.
The PHP is_nan()
function is used to check if a value is not a number.
PHP Numerical Strings
The PHP is_numeric()
function
is used to check whether a variable is a number or a numeric string.
This function returns true if the variable is a number or a numeric string, false otherwise.
Example
Check if the variable is numeric:
$x = 5985;
var_dump(is_numeric($x));
$x = "5985";
var_dump(is_numeric($x));
$x = "59.85" + 100;
var_dump(is_numeric($x));
$x = "Hello";
var_dump(is_numeric($x));
Try it Yourself »
Note: From PHP 7.0: The
is_numeric()
function will return
FALSE for numeric strings in hexadecimal form (e.g. 0xf4c3b00c), as they are no
longer considered as numeric strings.
PHP Casting Strings and Floats to Integers
Sometimes you need to cast a numerical value into another data type.
The (int)
, (integer)
, and
intval()
functions are often used to convert a value
to an integer.
Example
Cast float and string to integer:
// Cast float to int
$x = 23465.768;
$int_cast = (int)$x;
echo $int_cast;
echo "<br>";
// Cast string to int
$x = "23465.768";
$int_cast = (int)$x;
echo $int_cast;
Try it Yourself »
Learn more about casting in the PHP Casting chapter.