РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
109 of 815 menu

Функция copysign

Функция copysign возвращает число с абсолютным значением первого аргумента и знаком второго аргумента. Другими словами, она берет модуль первого числа и приписывает ему знак от второго числа. В первый параметр мы передаем число, от которого берется модуль, а во второй параметр - число, знак которого нужно скопировать. Функция доступна для типов float, double и long double и не изменяет исходные значения.

Синтаксис

#include <cmath> copysign(x, y);

Пример

Давайте применим знак от отрицательного числа -3 к положительному числу 5:

#include <iostream> #include <cmath> using namespace std; int main() { double res = copysign(5, -3); cout << res << endl; return 0; }

Результат выполнения кода:

-5

Пример

Если оба числа отрицательные, то результат также будет отрицательным, так как знак берется от второго аргумента:

#include <iostream> #include <cmath> using namespace std; int main() { double res = copysign(-5, -2); cout << res << endl; return 0; }

Результат выполнения кода:

-5

Пример

Давайте применим положительный знак к отрицательному числу:

#include <iostream> #include <cmath> using namespace std; int main() { double res = copysign(-5, 3); cout << res << endl; return 0; }

Результат выполнения кода:

5

Пример

Функция copysign также корректно работает с нулем. Знак нуля в C++ может быть как положительным, так и отрицательным. Скопируем знак от -0.0:

#include <iostream> #include <cmath> using namespace std; int main() { double res = copysign(0.0, -0.0); cout << res << endl; return 0; }

Результат выполнения кода:

-0

Смотрите также

  • функция abs,
    которая возвращает модуль числа
  • функция fabs,
    которая возвращает модуль числа с плавающей точкой
  • функция floor,
    которая округляет число вниз
  • функция trunc,
    которая отбрасывает дробную часть числа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить