Числата с плаваща запетая (също познати като "плаващи", "двойни" или "реални числа") могат да бъдат дефинирани посредством кой да е от следните синтаксиси:
<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
?>
Формално:
LNUM [0-9]+
DNUM ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
EXPONENT_DNUM ( ({LNUM} | {DNUM}) [eE][+-]? {LNUM})
Размерът на плаващите числа е платформено-зависим, макар че обикновено максималната стойност е около ~1.8e308, с 14-цифрена точност (64-битов IEEE формат).
В много случаи, прости десетични дроби като 0.1 или 0.7 не могат да бъдат превърнати във вътрешните им двоични еквиваленти без да претърпят малка загуба в точността. Това може да доведе до объркващи резултати: например floor((0.1+0.7)*10) в повечето случаи ще върне 7, вместо очакваното 8, тъй като вътрешното представяне в действителност е нещо подобно на 7.9999999999....
Това е свързано с факта, че някои дроби не могат да бъдат представени в десетичен вид с краен брой цифри. Например 1/3 в десетичен вид става 0.3333333. . ..
Така че, никога не се доверявайте на последните цифри в резултати от плаващи числа и никога не сравнявайте числа с плаваща запетая за равенство. Ако наистина се нуждаете от по-висока точност, трябва да използвате математическите функции за произволна точност или пък функциите gmp.
За информация кога и как низовете биват преобразувани в плаващи, вижте раздела, озаглавен Превръщане на низ в число. За стойности от други типове, преобразуването е същото, както ако стойността първо е била превърната в цяло число и после в плаващо. Вижте раздел Преобразуване в цяло число за повече информация. След PHP 5, ще бъде хвърлено съобщение (notice) ако опитате да превърнете обект в плаващо число.