uvod-u-cpp/lekcije/ispis_realnih.md

35 lines
1.4 KiB
Markdown
Raw Normal View History

2025-01-28 20:49:35 +00:00
[↩ Nazad na sadržaj](../README.md)
2025-01-28 20:43:40 +00:00
# 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:
```c++
#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:
```c++
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:
```c++
int pomocna_prom = pi * 100; // ovo će biti 314
```
Deljenjem ovog broja sa `100.0` dobijamo to što želimo 🙂
```c++
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.