Округление чисел — распространенная задача в программировании, и в некоторых случаях вам может потребоваться округлить число до ближайшего целого числа. В этой записи блога мы рассмотрим несколько методов достижения этой цели на C++, а также примеры кода. Эти методы будут включать использование стандартных библиотечных функций, математических операций и побитовых операций. Давайте погрузимся!
Метод 1: использование функции Floor() из библиотеки
Функция Floor() — это стандартная библиотечная функция C++, которая округляет число до ближайшего целого числа. Он возвращает двойное значение, поэтому вам может потребоваться привести результат к целому числу, если требуется целочисленное значение. Вот пример:
#include <iostream>
#include <cmath>
int main() {
double num = 9.8;
int roundedDown = static_cast<int>(std::floor(num));
std::cout << "Rounded down value: " << roundedDown << std::endl;
return 0;
}
Выход:
Округленное значение в меньшую сторону: 9
Метод 2: усечение дробной части
Другой способ округления числа в меньшую сторону — усечение дробной части. Этот метод просто удаляет десятичную часть числа, эффективно округляя его в меньшую сторону. Вот пример:
#include <iostream>
int main() {
double num = 9.8;
int roundedDown = static_cast<int>(num);
std::cout << "Rounded down value: " << roundedDown << std::endl;
return 0;
}
Выход:
Округленное значение в меньшую сторону: 9
Метод 3: использование целочисленного деления
Целочисленное деление можно использовать для округления в меньшую сторону. При делении числа на 1 и приведении результата к целому числу дробная часть отбрасывается, что приводит к округлению в меньшую сторону. Вот пример:
#include <iostream>
int main() {
double num = 9.8;
int roundedDown = num / 1;
std::cout << "Rounded down value: " << roundedDown << std::endl;
return 0;
}
Выход:
Округленное значение в меньшую сторону: 9
Метод 4: побитовые операции (для положительных чисел)
Для положительных чисел можно использовать побитовые операции для округления в меньшую сторону. Выполняя побитовую операцию «И» с маской, которая устанавливает дробные биты в ноль, число округляется в меньшую сторону. Вот пример:
#include <iostream>
int main() {
double num = 9.8;
int roundedDown = static_cast<int>(num) & -1;
std::cout << "Rounded down value: " << roundedDown << std::endl;
return 0;
}
Выход:
Округленное значение в меньшую сторону: 9
Метод 5: Побитовые операции (для отрицательных чисел)
Побитовые операции также можно использовать для округления отрицательных чисел. Выполняя побитовую операцию «ИЛИ» с маской, которая устанавливает дробные биты в единицу, дробная часть фактически усекается, что приводит к округлению в меньшую сторону. Вот пример:
#include <iostream>
int main() {
double num = -9.8;
int roundedDown = static_cast<int>(num) | 0x80000000;
std::cout << "Rounded down value: " << roundedDown << std::endl;
return 0;
}
Выход:
Округленное значение в меньшую сторону: -10
В этой записи блога мы рассмотрели пять различных методов округления чисел в C++. Эти методы включали использование функции Floor() из библиотеки