使用pow函数时出现问题:有多个 重载函数 “pow” 实例与参数列表匹配
初学C语言的人在使用pow函数时有时会忽略pow是double的返回值,编译出错。编译器会提示如下:
有多个 重载函数 “pow” 实例与参数列表匹配 :
函数 “pow(double _X, int _Y)”
函数 “pow(float _X, int _Y)”
函数 “pow(long double _X, int _Y)”
参数类型为 : (int, int)
比较常见的有:
int x,y;
int n = pow(x,y);
这样写代码编译器肯定会报错。
可以强制转换类型解决这个问题。有以下几种方法:
1.
int n = pow(double x,y);//强制转换为double型
int n = pow(float x,y);//强制转换为float型
int n = pow(long double x,y);//强制转换为long double型
int n = pow(x*1.0,y);//这个是转化为浮点型