Dynamiczny prinft, łączenie stringów/intów, taka sytuacja

0

Witam. Potrzebuję wyświetlić liczbę z dokładnością do tylu miejsc po przecinku ile poda użytkownik. Niestety każdy mój ruch kończy się błędem kompilacji.
Wiem jak wyświetlić liczbę ze stałą ilością cyfr (np.3) po przecinku, o tak:

printf("%.3f",liczba);

,ale już taka konstrukcja wywala błąd:

printf("%.3"+"f",liczba);

Nie wiem dlaczego nie mogę w ten sposób połączyć ciągów. Chciałem napisać tak:

printf("%.3"+a+"f",liczba);

gdzie a to ilość cyfr po przecinku (chyba jeszcze wypadałoby przekonwertować na string)

Pewnie jest lepsze rozwiązanie, ale nie znalazłem. Funkcja round chyba tylko do całkowitych zaokrągla, więc odpada. Byłbym wdzięczny za pomoc.

0

Użyj "%.*f" i podaj dokładność jako parametr przed liczbą: printf("%.*f", a, liczba);. (http://ideone.com/GzgqJ7)

Zapoznaj się z możliwościami printf: http://www.cplusplus.com/reference/cstdio/printf/

0

Dzięki wielkie!

1 użytkowników online, w tym zalogowanych: 0, gości: 1