Dokladnosc zapisu liczb zmiennoprzecikowych

0

Witam!
Jako ze jestem nowy to witam Wszystkich serdecznie!
Do rzeczy:
Mam do napisania program i w pewnym momencie muszę określić ilość miejsc po przecinku dla liczby typu double, która ma być zdefiniowana przez użytkownika (wczytana z klawiatury).

Oto fragment o który chodzi:

printf("podaj p i q\n");
int p,q;
scanf("%d",&p);
scanf("%d",&q);
printf("podaj dokladnosc:\n");
int eps;
scanf("%d",&eps);
double pq = p/q;
printf("p/q wynosi: %d\n",pq); 

w dalszej części programu zmienna pq ma być z dokładnością do eps miejsc po przecinku.
Jak to zrobić?

0

http://www.cplusplus.com/reference/clibrary/cstdio/printf/ . W skrócie:

printf ("%.*f\n",eps,liczba); //C
std::cout<<std::fixed<<std::setprecision(eps)<<liczba<<'\n'; //odpowiednik w C++ ;)

0

Ale czy to zmieni realnie wartość zmiennej czy tylko wypisze ją z określoną precyzją?

0

Będzie coś w tym stylu: pq = round((p / q) * pow(10, eps)) / pow(10, eps)

1

Sorry, zasugerowałem się tematem, nie treścią postu. Pewnie wystarczające są już podane odpowiedzi, tylko zastanawia mnie po co zawężać dokładność, i to szczególnie do danego rozwinięcia dziesiętnego.

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