long double powl (long double base, long double exp)
Функция pow() возвращает значение base, возведенное в степень ехр, т. е. base exp . Переполнение вызывает ошибку области значений. Также может возникнуть ошибка области определения. Версия этой функции для данных типа long double называется powl().
Следующая программа выводит первые одиннадцать степеней числа 12 .
#include
#include
int main ( void )
{
double x = 12.0 , y = 0.0 ;
do {
printf ( «%f \n » , pow ( x , y ) ) ;
y ++;
} while ( y < 11 ) ;
return 0 ;
}
Pow – возведение числа в степени

При успешном завершении, pow возвращает вычисленное значение, x^y.
Иногда, аргумент посылаемый pow вызывает в результате переполнение, или он вообще может быть не вычислимым. При переполнении, pow возвращает значение HUGE_VAL. При слишком большом значении, глобальной переменной errno присваивается значение:
ERANGE — Результат выходит за пределы.
Если аргумент x меньше или равен 0, и y не равен
0, то при этом errno присваивается значение:
EDOM — Ошибка области определения.
и функция возвращает значение обратное HUGE_VAL.
Если и x и y равны 0, то pow возвращает 1.
Обработку ошибок функции pow можно изменить с помощью функции matherr.
Переносимость
Вещественная версия pow доступна в системах UNIX и поддерживается стандартом ANSI C. Комплексная версия требует С++ и поэтому скорее всего непереносима.
Пример
#include #include int main(void)
pow , powf , powl
Вычисляет значение x , возведенное в степень y .
Синтаксис
double pow( double x, double y ); float powf( float x, float y ); long double powl( long double x, long double y ); define pow(X, Y) // Requires C11 or higher double pow( double x, int y ); // C++ only float pow( float x, float y ); // C++ only float pow( float x, int y ); // C++ only long double pow( long double x, long double y ); // C++ only long double pow( long double x, int y ); // C++ only
Параметры
Возвращаемое значение
Возвращает значение x y . Сообщение об ошибке не выводится в случае переполнения или потери значимости.
| x Значения и y | Возвращаемое значение pow |
|---|---|
| x != 0.0 и y == 0.0 | 1 |
| x == 0.0 и y == 0.0 | 1 |
| x == 0.0 и y < 0 | INF |
Замечания
pow не распознает целочисленные значения с плавающей запятой больше 2 64 (например, 1.0E100).
Функция pow содержит реализацию, которая использует Streaming SIMD Extensions 2 (SSE2). Сведения и ограничения по использованию реализации SSE2 см. в разделе _set_SSE2_enable .
Так как C++ допускает перегрузку, можно вызывать любые перегрузки pow . В программе C, если макрос не используется для вызова этой функции, pow всегда принимает два double значения и возвращает double значение.
Если вы используете pow макрос из , тип аргумента определяет, какая версия функции выбрана. Дополнительные сведения см . в разделе «Математика с универсальным типом».
Перегрузка pow(int, int) более не доступна. При использовании этой перегрузки компилятор может выдавать C2668. Чтобы избежать этой проблемы, необходимо привести параметр к типу double , float или long double .
pow(T, int) Первоначально перегрузки откатили pow вызов в последовательность встроенных операций умножения. Хотя это было быстрее, это было также гораздо менее точно. Эта реализация была удалена в Visual Studio 2015 с обновлением 1. Дополнительные сведения см. в разделе «Улучшения соответствия» в Visual Studio 2015 с обновлением 1.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью «Глобальное состояние» в CRT.
Требования
| Маршрут | Обязательный заголовок (C) | Обязательный заголовок (C++) |
|---|---|---|
| pow , powf , powl | или | |
| pow Макрос |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// crt_pow.c #include #include int main( void )
2.0 to the power of 3.0 is 8.0
Функция pow
В C++, эта функция перегружена в заголовочных файлах и (смотреть pow комплексных чисел и pow в библиотеке массивов числовых значений).
В Си, определена только версия функции с типами данных её параметров, — double . Другие перегруженные версии этой функции есть только в C++.
Параметры:
- basis
Значение с плавающей точкой — основание. - exponent
Значение с плавающей точкой — степень.
Возвращаемое значение
Возведение значения basis в степень exponent .
Если величина результата настолько велика, что она не может быть представлена в объекте возвращаемого типа, возникает ошибка области допустимых значений, и функция возвращает значение HUGE_VAL с соответствующим ему знаком и устанавливает значение макроса ERRNO в ERANGE значение.
Если basis отрицательное и exponent не целое значение, или если basis равна нулю, а exponent — отрицательное, возникает ошибка области допустимых значений, и выполняется установка глобальной переменной ERRNO в значение EDOM .
Пример: исходный код программы
// пример использования функции pow #include // для оператора cout #include // для функции pow int main()