Числа с плавающей точкой могут быть определены при помощи любого из следующих синтаксисов:
$float0 = 3.14; // 3.14
$float1 = 3.14e3; // 3140
$float2 = 3.14E-3; // 0.00314
E3 (e3) выше означает умножение на 1000, которое составялет 10 в кубе. E-3 (e-3) означает умножение на 1/1000, которое является обратным числом 10 в кубе.
Для того, чтобы точно преобразовать значение в число с плавающей точкой, используйте (float), который не чувствителен к регистру.
$a = 0.1 / 0.3;
printf("%.20e\r\n", $a); // print $a down to 20 places of decimals
[result]
3.33333333333333370341e-1
Как вы видите результат выше, значение не исправить до 15ти знаков после точки. Из-за этих ограничений лучше не использовать прямой операции сравнения чисел с плавающей точкой.
$float0 = acos(2);
if($float0 == $float0)
echo "True\r\n"; // result: FALSE
else
echo "float0\r\n"; // output: NAN
$float0 = 1.8E+309;
echo "float0"; // output: INF