double compute(double base,int exponent) //name
边界情况考虑:
1.考虑base==0的情况。exponent=0,为正,为负。
2.base为负的时候,不影响,取倒数即可。
3.判断一个浮点数于0相等与否。怎么判断
double compute(double base ,int exponent)
{
if(equel(base,0.0) && exponent==0)
{
cout<<"invalid input";
return 0.0;
}
// valid exponent smaller than zero
if(exponent <0)
unsigned int absExponent =(unsigned int ) (-exponent) ;
double result = powerwithunsignedExponent(base,absExponent);
if(exponent <0) return 1.0/result ;
return result;
}
bool equel (double sum1, double sum2 )
{
if ( ( sum1-sum2<0.0000001 ) && ( sum1-sum2>-0.0000001 ) )
{
rerurn true;
}
else
return false;
}