C++怎么计算一个数的负数次幂

实验要求:编写(递归)函数getPower计算x的y次方,在同一个程序中针对整型和实型实现两个重载的函数:
int getPower(int x, int y) ; //整型形式,当y<0时,函数返回0,其它情况返回正确的结果。
double getPower(double x, int y); //实数形式,无论y为何值,函数都能返回正确的结果。
最后运行给定的主程序,调用编写的函数得到指定的输出结果。

怎么改能让这段代码中double getPower(double x, int y);的输出是10的-3次幂也就是0.001呢

#include <iostream>
#include <stdio.h>
using namespace std;

int getPower(int x, int y)//整型形式,当y<0时,函数返回0,其它情况返回正确的结果。
{
    if (y < 0)
        return 0;
    else if (y == 0)
        return 1;
    else if (y == 1)
        return x;
    else
        return x * getPower(x, y - 1);
}
double getPower(double x, int y)//实数形式,无论y为何值,函数都能返回正确的结果。
{
    if (y < 0)
    {
        return 0;
    }
     if (y == 0)
    {
        return 1;
    }
    else
    {
        return x * getPower(x, y - 1);
    }
}

int main(void)
{
    int a= 10 ,m= 3 ;
    double b = 10;

    cout<<getPower(a,m)<<endl;   //调用int getPower(int x, int y);
    cout<<getPower(b,m)<<endl;   //调用double getPower(double x, int y);
    cout<<getPower(a,-m)<<endl;  //调用int getPower(int x, int y);
    cout<<getPower(b,-m)<<endl;  //调用double getPower(double x, int y);

    return 0;
}



#include <iostream>
#include <stdio.h>
using namespace std;
 
int getPower(int x, int y)//整型形式,当y<0时,函数返回0,其它情况返回正确的结果。
{
    if (y < 0)
        return 0;
    else if (y == 0)
        return 1;
    else if (y == 1)
        return x;
    else
        return x * getPower(x, y - 1);
}
double getPower(double x, int y)//实数形式,无论y为何值,函数都能返回正确的结果。
{
    if (y < 0)
    {
        return 1 / (double)getPower((int)x, -y);
    }
     if (y == 0)
    {
        return 1;
    }
    else
    {
        return x * getPower(x, y - 1);
    }
}
 
int main(void)
{
    int a= 10 ,m= 3 ;
    double b = 10;
 
    cout<<getPower(a,m)<<endl;   //调用int getPower(int x, int y);
    cout<<getPower(b,m)<<endl;   //调用double getPower(double x, int y);
    cout<<getPower(a,-m)<<endl;  //调用int getPower(int x, int y);
    cout<<getPower(b,-m)<<endl;  //调用double getPower(double x, int y);
 
    return 0;
}
负数则是除法
double 中
    if (y < 0)
      {
        return getPower(x, y + 1)/x;
    }