Podręcznik
2. Tablice wielowymiarowe
2.2. Formatowanie wydruków
Sterowanie sposobem prezentacji liczb zmiennoprzecinkowych jest możliwe poprzez ustalenie ich formatu i precyzji. Dostępne są trzy formaty:
- Format ogólny pozwala na wyświetlanie liczb możliwie najdokładniej uwzględniając dostępne miejsce. Precyzja w tym przypadku oznacza maksymalną liczbę cyfr.
- Format naukowy prezentuje wartość w postaci wykładniczej z jedną cyfrą przed kropką dziesiętną i wykładnikiem. Precyzja określa maksymalną liczbę cyfr po kropce.
- Format stały prezentuje wartość w sposób naturalny, taki do jakiego jesteście przyzwyczajeni. Zawsze występuje część całkowita, po której występuje część ułamkowa. Precyzja określa liczbę cyfr po kropce.
Przykład wyjaśnia, jak ustawić precyzję, natomiast aby zmienić tryb wypisywania na naukowy, podajemy:
cout << scientific;
Natomiast tryb stałoprzecinkowy ustawiamy tak:
cout << fixed;
Bardzo ważne jest też ustawienie równej szerokości pól przeznaczonych na drukowanie liczb. Szerokość pola wydruku ustawia się następująco (uwaga: dla każdej drukowanej pozycji osobno):
cout << setw(7);
A oto najwygodniejszy sposób, który pozwala w jednej instrukcji ustawić format, precyzję i szerokość wydruku, np.
cout << fixed << setprecision(3) << setw(6) << x << y <<endl;
iomani
p i używać tych standardowych manipulatorów w sposób podany poniżej.a) przed drukowaniem czegokolwiek ustawić stały format wydruku za pomocą manipulatora fixed
(tzn. w postaci naturalnej, z kropką dziesiętną) oraz precyzję wydruku, czyli liczbę miejsc po kropce, używając manipulatora setprecision
, w sposób następujący:
cout << fixed << setprecision(d);
wartość d może być oczywiście konkretną liczbą.
b) w instrukcji drukowania przed wyprowadzeniem jakiejś wartości podać, jaką szerokość w ma ona zająć, używając manipulatora setw
, np.:
cout << setw(4) << x << setw(7) << y << endl;
albo:
cout << setw(12) << x[i][j];
Oczywiście precyzję można ustawiać tak jak szerokość wydruku - w pętli, do każdej drukowanej wartości inną.