Zaokrouhlování na celá čísla
Někdy je třeba danou hodnotu v datovém typu s plovoucí čárkou aritmeticky správně zaokrouhlit.
Bez použití knihovny
Můžeme využít faktu, že při implicitní konverzi z čísla s plovoucí čárkou na celé číslo dojde k zahození desetinné části. Přičteme k libovolnému číslu 0.5 a přetypujeme.
int zaokrouhlene, zaokrouhlene2; float cislo = 1.4f; float cislo2 = 1.5f; // Je třeba explicitně přetypovat datový typ na int. zaokrouhlene = (int)(cislo + 0.5f); zaokrouhlene2 = (int)(cislo2 + 0.5f);
S použitím knihovny
Alternativně můžeme použít knihovní funkci round(f)
, která je celá postavená na číslech s plovoucí čárkou. std::round
// Verze C #include <math.h> //... float cislo = roundf(1.65f); double cislo2 = round(4.2);
// Verze C++ #include <cmath> //... // C++ využívá přetěžování funkcí, ale stále existuje i fce roundf float cislo = std::round(1.65f); double cislo2 = std::round(4.2);