# Power Function in C/C++

Given two numbers base and exponent, pow() function finds x raised to the power of y i.e. xy
Syntax:

```double pow(double x, double y);
x : floating point base value
y : floating point power value```
 `// CPP program to illustrate ` `// power function ` `#include ` ` `  `using` `namespace` `std; ` ` `  `int` `main() ` `{ ` `    ``double` `x = 6.1, y = 4.8; ` ` `  `    ``// Storing the answer in result. ` `    ``double` `result = ``pow``(x, y); ` `    ``cout << result << endl; ` ` `  `    ``return` `0; ` `} `

Output:

```5882.79
```

Working of pow() function with integers

The pow() function takes ‘double’ as the arguments and returns a ‘double’ value. This functions does not always work for integers. One such example is pow(5, 2). When assigned to an integer, it outputs 24 on some compilers and works fine for some other compilers. But pow(5, 2) without any assignment to an integer outputs 25.

• This is because 52 (i.e. 25) might be stored as 24.9999999 or 25.0000000001 because the return type is double. When assigned to int, 25.0000000001 becomes 25 but 24.9999999 will give output 24.
• To overcome this and output the accurate answer in integer format, we can add 0.5 to the result and typecast it to int e.g (int)(pow(5, 2)+0.5) will give the correct answer(25, in above example), irrespective of the compiler.
 `// CPP program to illustrate ` `// working with integers in ` `// power function ` `#include ` `using` `namespace` `std; ` `int` `main() ` `{ ` `    ``int` `a; ` `     `  `    ``// Using typecasting for  ` `    ``// integer result  ` `    ``a = (``int``)(``pow``(5, 2) + 0.5); ` `    ``cout << a; ` ` `  `    ``return` `0; ` `} `

Output:

```25
```

## tags:

C C++ C-Library CPP-Library C CPP