Oui, c'est un bug dans les nombres réels. Dieu a été prévenu. En attendant, utilise printf("3*5.2=%2.2f\n", 3*f);
En effet, les nombres réels sont exprimés en base 2 (en binaire), donc toute la mantisse est exprimée de façon approchée en 2^0 + 2^(-1) + 2^(-2) + 2^(-3) + ...
Ta seule façon, c'est de demander à ton compilo de ne t'afficher que quelques chiffres après la virgule, pour être sûr d'avoir un arrondi correct.
Pour plus d'infos, google "IEEE 754" et regarde ça: http://docs.sun.com/source/806-3568/ncg_goldberg.html