Не используйте поплавки для хранения или представления денежных сумм. Используйте длинные (если вам нужно больше 4 миллиардов центов, используйте длинные). Обычно хорошей идеей является представление валюты в минимальной используемой единице, например, используйте 10000 для представления 100 евро). Тогда правильный способ форматирования этих значений (при условии 100 центов к евро или доллару):
printf( "%d.%02d", value/100, value%100);
Надеюсь, это имеет смысл ...
Расчеты с валютными значениями - сложная тема, но вы не можете пойти далеко не так, если вы всегда стремитесь получить округленный ответ до ближайшей денежной единицы (например, цент) и всегда убедитесь, что ошибки округления рассчитаны для (например, разделите 1 доллар на три части: 33 + 33 + 34 или 33 + 33 + 33 + 1).