floatval() und das Typecasting mittels (float) machen exakt dasselbe - wenn das eine nicht funktioniert wird das andere ebenfalls nicht funktionieren:
ich kann nur aus meiner Erfahrung sprechen. Ich hatte schon den Fall das (float) nicht funktionierte aber floatval() schon.