Printf número variable de decimales en float

Encontré un formato interesante para imprimir cadenas de longitud fija no terminadas como esta:

char newstr[40] = {0};
sprintf(newstr,"%.*s",  sizeof(mystr), mystr);

Así que creo que tal vez hay una forma bajo el comando printf para imprimir un número flotante ...

"% 8.2f"

Tener capacidad para elegir número de decimales con número entero.

Algo como esto:

sprintf(mystr, "%d %f", numberofdecimals, floatnumbervalue)

EDITAR - Solución:
(para redondear y borrar un número flotante a la precisión deseada).

int precision = 2;  
char kolf[16] = {0};  
sprintf(kolf, "%8.*f", precision, mystruct.myfloat);  
float kol = atof(kolf);  

Respuestas a la pregunta(2)

Su respuesta a la pregunta