f = float(c);
ne fonctionne pas ! ce n'est pas un cast et encore moins une conversion de string vers float.
recherche sur google un truc du genre : atof
aller, un chti lien :
http://www.cplusplus.com/reference/clibrary/cstdlib/atof/
ou encore strtod :