uvod-u-cpp/lekcije/ispis_realnih.md
2025-01-28 21:43:40 +01:00

1.3 KiB

Ispis realnih brojeva

Kako postići zaokruživanje na 2 decimale? U jeziku C++ pravilan način da se to postigne je korišćenjem funkcije setprecision iz biblioteke <iomanip>. Kod ispod ispisuje broj π (pi) zaokružen na 2 decimale:

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    double pi = 3.14159265;
    cout << fixed << setprecision(2) << pi << endl; // ispisuje 3.14!
    return 0;
}

Lekcija o snalažljivosti

Šta činiti ako smo zaboravili na setprecision? Najbitnija veština takmičara (ali i dobrog programera) je da ume da se snađe .

Jedan način koji znamo na koji možemo da odbacimo decimale iza zareza je konverzija (pretvaranje) realnog broja u ceo broj, a to mozemo postići čuvanjem realnog broja u celobrojnu promenljivu, na primer ovako:

int ceo_deo = pi; // ovo će biti 3

Ali kako da izvučemo bas 3.14? Množenjem broja 3.14159265 sa 100 dobijamo 314.159265 gde ponovo na istu foru umemo da izbacimo deo iza zareza:

int pomocna_prom = pi * 100; // ovo će biti 314

Deljenjem ovog broja sa 100.0 dobijamo to što želimo 🙂

double rezultat = pomocna_prom / 100.0; // ... 3.14 

Pazite na to da smo ovde morali da delimo baš sa 100.0 a ne sa 100 jer na ovaj način kažemo C++-u da treba deljenje da tretira kao realno, a ne celobrojno.