اعداد ممیز شناور (معروف به "floats"٬ "doubles"٬ یا "real numbers") توسط دستورهای زیر قابل تعریف است:
<?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})
اندازه یک float براساس محیط استفاده شده است اما حداکثر مقدار آن ~1.8e308 به همراه یک دقت با ۱۴ رقم دهدهی در رقمهای معمول است ( 64 قالب بیتی IEEE ).
بطور معمول مقادیر اعشاری 0.1 یا 0.7 نمیتوانند به نوع دودویی آنها بدون از دست دادن دقت تبدیل مینماید. این کار موجب ایجاد نتایج گیج کننده خواهد شد: برای نمونه floor((0.1+0.7)*10) معمولا مقدار 7 به جای 8 تولید خواهد کرد زیرا که نمایش داخلی شبیه چیزی مانند 7.9 است.
این موضوع بدلیل عدم امکان بیان اعشاری بصورت اعشاری است زیرا رقمهای کمتری دارد. برای نمونه 1/3 بصورت اعشاری تبدیل به 0.3 خواهد شد.
مقدار رقم نهایی یک float دقیق نیست و هرگز نقدار اعداد ممیز شناور را با یکدیگر مقایسه نکنید. اگر دقت بالاتر لازم باشد توابع ریاضی با دقت دلخواه و توابع gmp را ببینید.
برای اطلاعات درباره تبدیل string به float تبدیل string به عدد را ببینید. برای مقدارهای انواع دیگر تبدیل با استفاده از تبدیل مقدار integer در ابتدا و سپس float انجام خواهد شد. برای اطلاعات بیشتر تبدیل به integer را ببینید. در زمان PHP 5 یک notice هنگام تبدیل object به float ایجاد خواهد شد.