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);