Time and Numeric Utilities
Round Values
Rounding helpers turn fractional values into nearby whole-number choices.
floor
`std::floor` moves to the greatest whole number not greater than the value.
ceil
`std::ceil` moves to the smallest whole number not less than the value.
round
`std::round` moves to the nearest whole number.
Round Values
round_values.cpp
Replay: real traced execution (multi-file project)
#include <cmath>
#include <iostream>
int main() {
double raw = 3.6;
int down = static_cast<int>(std::floor(raw));
int up = static_cast<int>(std::ceil(raw));
int nearest = static_cast<int>(std::round(raw));
std::cout << "raw=" << raw << std::endl;
std::cout << "down=" << down << std::endl;
std::cout << "up=" << up << std::endl;
std::cout << "nearest=" << nearest << std::endl;
return 0;
}
#include <cmath>
#include <iostream>
int main() {
double raw = 2.2;
int down = static_cast<int>(std::floor(raw));
int up = static_cast<int>(std::ceil(raw));
int nearest = static_cast<int>(std::round(raw));
std::cout << "raw=" << raw << std::endl;
std::cout << "down=" << down << std::endl;
std::cout << "up=" << up << std::endl;
std::cout << "nearest=" << nearest << std::endl;
return 0;
}
#include <cmath>
#include <iostream>
int main() {
double raw = -1.7;
int down = static_cast<int>(std::floor(raw));
int up = static_cast<int>(std::ceil(raw));
int nearest = static_cast<int>(std::round(raw));
std::cout << "raw=" << raw << std::endl;
std::cout << "down=" << down << std::endl;
std::cout << "up=" << up << std::endl;
std::cout << "nearest=" << nearest << std::endl;
return 0;
}
raw ← 3.6, down ← 3, up ← 4, nearest ← 4
4int main() {5 double raw→ 3.6 = 3.6; //@raw=2.2, -1.767 int down→ 3 = static_cast<int>(std::floor(raw3.6));8 int up→ 4 = static_cast<int>(std::ceil(raw3.6));9 int nearest→ 4 = static_cast<int>(std::round(raw3.6));1011 std::cout << "raw=" << raw3.6 << std::endl;12 std::cout << "down=" << down3 << std::endl;13 std::cout << "up=" << up4 << std::endl;14 std::cout << "nearest=" << nearest4 << std::endl;15 return 0;16}outputraw=3.6 down=3 up=4 nearest=4
raw ← 2.2, down ← 2, up ← 3, nearest ← 2
4int main() {5 double raw→ 2.2 = 2.2;67 int down→ 2 = static_cast<int>(std::floor(raw2.2));8 int up→ 3 = static_cast<int>(std::ceil(raw2.2));9 int nearest→ 2 = static_cast<int>(std::round(raw2.2));1011 std::cout << "raw=" << raw2.2 << std::endl;12 std::cout << "down=" << down2 << std::endl;13 std::cout << "up=" << up3 << std::endl;14 std::cout << "nearest=" << nearest2 << std::endl;15 return 0;16}outputraw=2.2 down=2 up=3 nearest=2
raw ← -1.7, down ← -2, up ← -1, nearest ← -2
4int main() {5 double raw→ -1.7 = -1.7;67 int down→ -2 = static_cast<int>(std::floor(raw-1.7));8 int up→ -1 = static_cast<int>(std::ceil(raw-1.7));9 int nearest→ -2 = static_cast<int>(std::round(raw-1.7));1011 std::cout << "raw=" << raw-1.7 << std::endl;12 std::cout << "down=" << down-2 << std::endl;13 std::cout << "up=" << up-1 << std::endl;14 std::cout << "nearest=" << nearest-2 << std::endl;15 return 0;16}outputraw=-1.7 down=-2 up=-1 nearest=-2