sqrt
, sqrtf
, sqrtl
Calculates the square root.
Syntax
double sqrt(
double x
);
float sqrt(
float x
); // C++ only
long double sqrt(
long double x
); // C++ only
float sqrtf(
float x
);
long double sqrtl(
long double x
);
#define sqrt(x) // Requires C11 or higher
Parameters
x
Non-negative floating-point value
Remarks
Because C++ allows overloading, you can call overloads of sqrt
that take float
or long double
types. In a C program, unless you're using the <tgmath.h>
macro to call this function, sqrt
always takes and returns double
.
If you use the <tgmath.h> sqrt()
macro, the type of the argument determines which version of the function is selected. See Type-generic math for details.
By default, this function's global state is scoped to the application. To change this behavior, see Global state in the CRT.
Return value
The sqrt
functions return the square-root of x
. By default, if x
is negative, sqrt
returns an indefinite NaN
.
Input | SEH exception | _matherr exception |
---|---|---|
± QNaN, IND | none | _DOMAIN |
- INF | none | _DOMAIN |
x < 0 |
none | _DOMAIN |
Requirements
Function | C header | C++ header |
---|---|---|
sqrt , sqrtf , sqrtl |
<math.h> |
<cmath> |
sqrt macro |
<tgmath.h> |
For compatibility information, see Compatibility.
Example
// crt_sqrt.c
// This program calculates a square root.
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
double question = 45.35, answer;
answer = sqrt( question );
if( question < 0 )
printf( "Error: sqrt returns %f\n", answer );
else
printf( "The square root of %.2f is %.2f\n", question, answer );
}
The square root of 45.35 is 6.73
See also
Math and floating-point support
exp
, expf
, expl
log
, logf
, log10
, log10f
pow
, powf
, powl
_CIsqrt