首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >#包含<cmath>

#包含<cmath>
EN

Stack Overflow用户
提问于 2011-03-28 00:32:49
回答 1查看 3.5K关注 0票数 0

下面的代码片段出了什么问题,导致VS2010无法对其进行编译?

代码语言:javascript
复制
int m = sqrt( n );

(我正在尝试确定一个整数是否为素数...)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-28 00:39:51

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

代码语言:javascript
复制
long double m = sqrt(static_cast<long double>(n));

由于您包括cmath,而不是math.h,所以我假设您想要c++。对于C语言,您需要使用例如:

代码语言:javascript
复制
double m = sqrt((double) n);

您得到的错误只是意味着编译器不能自动为您选择sqrt函数-您传递的整数需要转换为浮点类型,并且编译器不知道它应该选择哪个浮点类型和sqrt函数。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5450576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档