C++ Nearest Integer Functions
beginner
c++11
math
#include <cmath>
The C++ Standard Library provides the ceil
, floor
, trunc
, and round
series of functions which all take a single floating point argument and return nearby integers.
Ceil
The ceil
function returns the smallest integer that is not less than its argument.
#include <cmath> #include <iostream> int main() { auto ceiling = std::ceil(3.141592f); std::cout << ceiling << "\n"; ceiling = std::ceil(-3.141592f); std::cout << ceiling << "\n"; }
4 -3
Floor
The floor
function returns the largest integer that is not greater than its argument.
#include <cmath> #include <iostream> int main() { auto floor = std::floor(3.141592f); std::cout << floor << "\n"; floor = std::floor(-3.141592f); std::cout << floor << "\n"; }
3 -4
Trunc
The trunc
function returns the nearest integer to its argument by removing the decimal portion of the argument.
#include <cmath> #include <iostream> int main() { auto trunc = std::trunc(3.141592f); std::cout << trunc << "\n"; trunc = std::trunc(-3.141592f); std::cout << trunc << "\n"; }
3 -3
Truncation is also what happens when you assign a floating point value to an integer value in C++.
#include <cmath> #include <iostream> int main() { float pi = 3.141592f; int trunc = pi; std::cout << trunc << "\n"; trunc = -pi; std::cout << trunc << "\n"; }
3 -3
Round
The round
function returns the nearest integer to its argument. When the argument is halfway between two integers (.5
) the value is rounded away from zero.
#include <cmath> #include <iostream> int main() { auto round = std::round(3.141592f); std::cout << round << "\n"; round = std::round(3.5f); std::cout << round << "\n"; round = std::round(-3.5f); std::cout << round << "\n"; }
3 4 -4