bubble的备忘录

本blog主要用于常用资料的备忘、备份、备搜索

“pow” : 7 个重载有相似的转换的错误解决方式

pow函数有七个重载

inline double __cdecl pow(double _X, int _Y)
inline double __cdecl pow(double _X, double _Y)
inline float __cdecl pow(float _X, int _Y)
inline float __cdecl pow(float _X, float _Y)
inline int __cdecl pow(int _X, int _Y)
inline double __cdecl pow(double _X, int _Y)
inline double __cdecl pow(double _X, double _Y)

比如你调用 pow(target.usXPos - origin.usXPos, 2.0)
如果target.usXPos - origin.usXPos结果是int型,2.0是float型,没有参数类型完全符合的调用,所以要进行参数类型转换。但编译器发现有许多种转换方法,所以会报错。

你应该显示的转换一下参数的类型,比如

pow((double)(target.usXPos - origin.usXPos), (double)2.0f)

这样应该就能通过编译了

0 评论: