Изучение функций округления в C++: полное руководство по округлению чисел

Округление чисел — обычная операция во многих сценариях программирования, и C++ предоставляет несколько методов для выполнения этой задачи. В этой статье мы рассмотрим различные методы округления и приведем примеры кода, демонстрирующие их использование. Если вам нужно округлить числа вверх, вниз или до ближайшего целого числа, в этом руководстве будут рассмотрены все основные методы. Давайте погрузимся!

  1. Округление до ближайшего целого числа (стандартное округление):

Наиболее распространенной операцией округления является округление числа до ближайшего целого числа. C++ предоставляет функцию roundиз библиотеки для выполнения этой задачи:

#include <cmath>
#include <iostream>
int main() {
    double number = 3.6;
    int rounded = std::round(number);

    std::cout << "Rounded value: " << rounded << std::endl;

    return 0;
}

Выход:

Rounded value: 4
  1. Округление вниз (функция нижнего предела):

Чтобы округлить число до ближайшего целого числа, вы можете использовать функцию floorиз :

#include <cmath>
#include <iostream>
int main() {
    double number = 3.6;
    int roundedDown = std::floor(number);

    std::cout << "Rounded down value: " << roundedDown << std::endl;

    return 0;
}

Выход:

Rounded down value: 3
  1. Округление вверх (функция потолка):

Чтобы округлить число до ближайшего целого числа, вы можете использовать функцию ceilиз :

#include <cmath>
#include <iostream>
int main() {
    double number = 3.2;
    int roundedUp = std::ceil(number);

    std::cout << "Rounded up value: " << roundedUp << std::endl;

    return 0;
}

Выход:

Rounded up value: 4
  1. Усечение (Усечение):

Усечение предполагает удаление дробной части числа без округления. Функция truncиз выполняет это:

#include <cmath>
#include <iostream>
int main() {
    double number = 3.9;
    double truncated = std::trunc(number);

    std::cout << "Truncated value: " << truncated << std::endl;

    return 0;
}

Выход:

Truncated value: 3
  1. Округление до ближайшего целого числа (округление до середины):

Если вы хотите округлить до ближайшего целого числа с округлением средней точки, вы можете использовать функцию nearbyintиз :

#include <cmath>
#include <iostream>
int main() {
    double number = 3.5;
    int rounded = std::nearbyint(number);

    std::cout << "Rounded value: " << rounded << std::endl;

    return 0;
}

Выход:

Rounded value: 4
  1. Форматирование округленных чисел:

Помимо функций округления, C++ также предоставляет способы форматирования округленных чисел. Библиотека позволяет устанавливать точность чисел с плавающей запятой с помощью функции setprecision:

#include <iostream>
#include <iomanip>
int main() {
    double number = 3.14159;
    double rounded = std::round(number * 100) / 100.0;

    std::cout << "Formatted rounded value: " << std::fixed << std::setprecision(2) << rounded << std::endl;

    return 0;
}

Выход:

Formatted rounded value: 3.14

Округление чисел — фундаментальная операция в программировании, и C++ предоставляет множество функций для обработки различных сценариев округления. В этой статье мы рассмотрели round, floor, ceil, truncи nearbyint, а также форматирование округленных чисел с помощью функции setprecisionиз . Вооружившись этими методами, вы сможете эффективно округлять числа в своих программах на C++, обеспечивая точные вычисления и желаемый результат.