I have been programming in C++ for a while now. I have seen previously that power function gives wrong answer for bigger powers due to precision issues but today while solving coding problems I saw that under the same type of parameters, pow() function gave different values when put inside a function vs when evaluated directly.
 #include <iostream>
 #include <math.h>
 using namespace std;
 long long n,d;
 long long power(long long x)
 {
    return pow(100,x);
 }
 long long powersecond(long long x)
 {
    return pow(100,(int)x);
 }
 int main()
 {
    n = 68; d = 2;
    cout << n*power(d) <<endl;        // outputs 679932
    cout << n*pow(100,d) <<endl;      // outputs 680000
    cout << n*powersecond(d) <<endl;  // outputs 679932
    cout << n*pow(100,(int)d) <<endl; // outputs 680000
    return 0;
 }
Notice that the answer doesn't change even after converting x to integer in powersecond() function.The answer is still 679932 even if d is int instead of long long int. The compiler I used is gnu gcc compiler in VS Code.
 
     
     
     
    