我的开发环境是 Vs.net 2003 下的 vc++.net 中   double i;
 i=sqrt(9); C2668: “sqrt” : 对重载函数的调用不明确
已包含 math.h  和cmath  请问是什么原因.谢谢  顺祝春节快乐。

解决方案 »

  1.   

    确定只包含math.h应该可以。如果不能确定(包含了<math.h>和<cmath>),檢查一下你是不是用过using namespace std;一类的语句,改成
    i=std::sqrt(9);
    试一下。或者不要用using namespace std;。
      

  2.   

    。NET不熟
    学习的同时UP一下
      

  3.   

    由于9可以是float,也可以是double,所以造成了编译器无法识别调用那个重载的函数。
    你可以用强制的类型转换:
    double i = sqrt((double)9);
      

  4.   

    解决了  titilima(李马)  说的对强制转换后就可以了  还以为编译器会自动默认一个呢没想到 哎  谢谢大家马上结贴