Printf zmienna liczba miejsc dziesiętnych w floacie

Znalazłem interesujący format do drukowania ciągów o niezmiennej długości, takich jak ten:

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

Myślę więc, że może być sposób w poleceniu printf na wydrukowanie liczby float ...

„% 8.2f”

mieć możliwość wyboru liczby miejsc dziesiętnych z liczbą całkowitą.

Coś takiego:

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

EDYCJA - Rozwiązanie:
(do zaokrąglania i usuwania liczby float do pożądanej precyzji).

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

questionAnswers(2)

yourAnswerToTheQuestion