大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
pow返回浮点数,但是printf按照整数来,就会取浮点数的前几位,刚好前几位都是0,自然输出0
创新互联建站服务项目包括花山网站建设、花山网站制作、花山网页制作以及花山网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,花山网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到花山省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
pow() 函数用来求 x 的 y 次幂(次方),其原型为:
double pow(double x, double y);
pow()用来计算以x 为底的 y 次方值,然后将结果返回。
查看代码是否传参错误
sqrt的返回值类型是double型,你输出的时候用%d当然结果是错的了,可以试试类型转换,把最后一个printf语句改成如下:
printf("%d\n",(int)sqrt(n));
pow()函数返回值类型是double,所以,相应的输出位置格式符为%lf 或 %f
printf("%d %d %f\n", count, count*count, pow(count,3) );
pow(b,c) 结果是double。
printf("%d",xxx)会把xxx当整型处理,而不是进行类型转换。
3072的double型数据内存格式为
00 00 00 00 00 00 A8 40
整型处理时取前四位
00 00 00 00
结果就是0
如果按64位格式输出,%I64d,就会看到
3*4^5=4658973814514778112
%I64X就是3*4^5=40A8000000000000
呵呵
pow()函数用来求x的y次幂,x、y及函数值都是double型 ,其原型为:double pow(double x, double y)。
实例代码如下:
#includestdio.h
#includemath.h
void main()
{
double x = 2, y = 10;
printf("%f\n",pow(x, y));
return 0;
}
扩展资料:
在调用pow函数时,可能导致错误的情况:
如果底数 x 为负数并且指数 y 不是整数,将会导致 domain error错误。
如果底数 x 和指数 y 都是 0,可能会导致 domain error?错误,也可能没有;这跟库的实现有关。
如果底数 x 是 0,指数 y 是负数,可能会导致?domain error 或pole error 错误,也可能没有;这跟库的实现有关。
如果返回值 ret 太大或者太小,将会导致range error 错误。
错误代码:
如果发生 domain error 错误,那么全局变量 errno 将被设置为 EDOM;
如果发生 pole error 或 range error 错误,那么全局变量 errno 将被设置为 ERANGE。
参考资料:
pow函数——百度百科