In this chapter we will look in depth into Integers, Floats, and Number Strings.
There are three main numeric types in PHP:
Integer
Float
Number String
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:
$a = 5;
$b = 5.34;
$c = "25";
To verify the type of any object in PHP, use the var_dump()
function:
var_dump($a);
var_dump($b);
var_dump($c);
In PHP, floats are used to represent decimal numbers, also known as floating-point
numbers. They allow for more precise calculations compared to integers, which can
only represent whole numbers. Floats in PHP are declared using the float keyword or by
simply assigning a decimal value to a variable.
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.
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.0is_float()
is_double()
- alias of is_float()
$x = 10.365;
var_dump(is_float($x));
In PHP, the concept of infinity is used to represent a mathematical value that
is greater than any finite number. PHP has predefined constants to represent
positive and negative infinity, which can be useful in certain calculations or conditions.
However, the PHP var_dump()
function returns the data type and value:
$x = 1.9e411;
var_dump($x);
In PHP, "NaN" stands for "Not a Number" and is used to represent undefined or unrepresentable numerical values,
such as the result of an invalid mathematical operation.
However, the PHP var_dump()
function returns the data type and value:
Invalid calculation will return a , NaN
value:
$x = acos(8);
var_dump($x);
The PHP is_numeric()
function can be used to find whether a variable is numeric. The function returns true if the variable is a number or a numeric string, false otherwise.
$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));
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.
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.
// 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;