Visual studio 2010 #包括<;cmath>;

Visual studio 2010 #包括<;cmath>;,visual-studio-2010,cmath,Visual Studio 2010,Cmath,下面的代码段有什么问题,VS2010不会编译它 int m = sqrt( n ); (我正在尝试确定整数是否为素数…您需要将特定的浮点类型传递给sqrt——没有整数重载。使用例如: long double m = sqrt(static_cast<long double>(n)); 您得到的错误仅仅意味着编译器无法自动为您选择sqrt函数-您传递的整数需要转换为浮点类型,编译器不知道应该选择哪种浮点类型和sqrt函数。您需要将特定的浮点类型传递给sqrt——没有整数重载。使用例

下面的代码段有什么问题,VS2010不会编译它

int m = sqrt( n );

(我正在尝试确定整数是否为素数…

您需要将特定的浮点类型传递给
sqrt
——没有整数重载。使用例如:

long double m = sqrt(static_cast<long double>(n));

您得到的错误仅仅意味着编译器无法自动为您选择
sqrt
函数-您传递的整数需要转换为浮点类型,编译器不知道应该选择哪种浮点类型和
sqrt
函数。

您需要将特定的浮点类型传递给
sqrt
——没有整数重载。使用例如:

long double m = sqrt(static_cast<long double>(n));

您得到的错误仅仅意味着编译器无法自动为您选择
sqrt
函数-您传递的整数需要转换为浮点类型,编译器不知道应该选择哪种浮点类型和
sqrt
函数。

没有足够的信息来决定您显示的代码为何无法编译。您收到了什么错误消息?我收到了:错误C2668:“sqrt”:对重载函数的调用不明确听起来
n
是错误的类型。看看@Erik的答案。Erik的答案很有效。而不是
intm=sqrt(n)我应该使用
长双m=sqrt(static_cast(n))没有足够的信息来决定您显示的代码为何无法编译。您收到了什么错误消息?我收到了:错误C2668:“sqrt”:对重载函数的调用不明确听起来
n
是错误的类型。看看@Erik的答案。Erik的答案很有效。而不是
intm=sqrt(n)我应该使用
长双m=sqrt(static_cast(n))