cbrt, cbrtf, cbrtl

Calculates the cube root.


double cbrt(
   double x
float cbrt(
   float x
);  // C++ only
long double cbrt(
   long double x
);  // C++ only
float cbrtf(
   float x
long double cbrtl(
   long double x
#define cbrt(X) // Requires C11 or higher


Floating-point value

Return Value

The cbrt functions return the cube-root of x.

Input SEH Exception _matherr Exception
± ∞, QNAN, IND none none


Because C++ allows overloading, you can call overloads of cbrt that take float or long double types. In a C program, unless you're using the <tgmath.h> macro to call this function, cbrt always takes and returns double.

If you use the <tgmath.h> cbrt() 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, see Global state in the CRT.


Function C header C++ header
cbrt, cbrtf, cbrtl <math.h> <cmath>
cbrt macro <tgmath.h>

For additional compatibility information, see Compatibility.


// crt_cbrt.c
// Compile using: cl /W4 crt_cbrt.c
// This program calculates a cube root.

#include <math.h>
#include <stdio.h>

int main( void )
   double question = -64.64;
   double answer;

   answer = cbrt(question);
   printf("The cube root of %.2f is %.6f\n", question, answer);
The cube root of -64.64 is -4.013289

See also

Floating-Point Support
exp, expf, expl
log, logf, log10, log10f
pow, powf, powl