You should always opt for snprintf if your CRT supports it. In addition, specifying the precision is always a good idea
i.e.
/* format the string, making sure you don't overflow and printing only 3 numbers after dec point */
snprintf(buffer, sizeof(buffer), "%.3f", yourFloatVariable);
/* terminate the string, just in case you hit the last byte */
buffer[sizeof(buffer) - 1] = 0;
Some compilers (like the old hi-tech C) require you to specify that you need floating point in your printf library. Today this is done automatically, though.