En tu caso is_numeric(). is_float solo detectara numeros que no sean enteros (24.5,1.2) y ctype_digit solo comprobara si un string consiste solo de numeros enteros (no reconoce el .) o no..
http://php.net/manual/en/function.is-numeric.php
Saludos
http://php.net/manual/en/function.is-numeric.php
Saludos