Bueno... te has dado tú mismo la respuesta...
Lo que te sugiero es hacer algunas pruebas de esa función y si todo va bien... la publicas en el espacio para comentarios de los usuarios de la función is_float() o is_double() como una alternativa que planteas para validar cadenas numéricas de tipo FLOAT.
De esa forma puedes contribuir con otros que puedan tener tu problema.
Saludos