Float in PHP

I. What is float?

Floating numbers are numbers that have a decimal point.

$x = 1.5;

Similar to an integer, the size of a floating number depends on the platform.

We can check using these constants: PHP_FLOAT_MAX and PHP_FLOAT_MIN.

echo PHP_FLOAT_MAX; // 1.7976931348623E+308

II. Check if a number is infinite

You will get INF (is infinite) if you go out of the boundary.

To compare if a variable is infinite, we use a function is_infinite(). The opposite is the function is_finite().

$x = PHP_FLOAT_MAX * 2;
var_dump($x); // float(INF)
var_dump(is_infinite($x)); // bool(true)
var_dump(is_finite($x)); // bool(false)

III. Check if it’s a number

NAN stands for “Not A Number”.

We can use the function is_nan() to check if an argument is not a number.

var_dump(log(-1)); // float(NAN)
var_dump(is_nan(log(-1))); // bool(true)

IV. Casting

We can convert data types into a float by casting (float) before an argument.

$x = 1;
var_dump($x); // int(1)
var_dump((float) $x); // float(1)

Note: When converting a string into a float, if a string can be represented as a number, it can be converted into a float. Otherwise, it will be 0.

$x = "abc";
$y = "40.2a";
var_dump((float) $x); // float(0)
var_dump((float) $y); // float(40.2)