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.