pow函数的误差

· · 个人记录

由于pow()函数的原型为double pow(double x,double y);
所以在进行整数的指数运算时会产生误差
例如
(int)pow(10,2);的返回值为99
因为在强制转化为int时,原先的浮点值99.9999999发生了截断,失去了精度

解决方案:
在计算整数的指数运算时,写成如下形式
(int)(pow(x,y)+0.5);
在截断取整时会得到想要的结果。