ccpp:round

Zaokrouhlování na celá čísla

Někdy je třeba danou hodnotu v datovém typu s plovoucí čárkou aritmeticky správně zaokrouhlit.

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);

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);
  • ccpp/round.txt
  • Poslední úprava: 2022/11/21 13:22
  • autor: bures