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
. Сообщение об ошибке не выводится в случае переполнения или потери значимости.
x Значения иy |
Возвращаемое значение pow |
---|---|
x != 0.0 и y == 0.0 |
1 |
x == 0.0 и y == 0.0 |
1 |
x == 0.0 и y < 0 |
INF |
Замечания
pow
не распознает целочисленные значения с плавающей запятой больше 264 (например, 1.0E100).
Функция pow
содержит реализацию, которая использует Streaming SIMD Extensions 2 (SSE2). Сведения и ограничения по использованию реализации SSE2 см. в разделе _set_SSE2_enable
.
Так как C++ допускает перегрузку, можно вызывать любые перегрузки pow
. В программе C, если макрос не используется <tgmath.h>
для вызова этой функции, pow
всегда принимает два double
значения и возвращает double
значение.
Если вы используете pow
макрос из <tgmath.h>
, тип аргумента определяет, какая версия функции выбрана. Дополнительные сведения см . в разделе "Математика с универсальным типом".
Перегрузка 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 |
<math.h> |
<math.h> или <cmath> |
pow Макрос |
<tgmath.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// crt_pow.c
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 2.0, y = 3.0, z;
z = pow( x, y );
printf( "%.1f to the power of %.1f is %.1f\n", x, y, z );
}
2.0 to the power of 3.0 is 8.0
См. также
Поддержка математических и плавающих точек
exp
, , expf
expl
log
, , logf
log10
log10f
sqrt
, , sqrtf
sqrtl
_CIpow