搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 为什么sqrt(3)会报错说重载函数的调用不明确
标题:
为什么sqrt(3)会报错说重载函数的调用不明确
只看楼主
cpxuvs
等 级:
论坛游侠
威 望:
3
帖 子:45
专家分:142
注 册:2015-12-22
结帖率:
85.71%
楼主
问题点数:0 回复次数:8
为什么sqrt(3)会报错说重载函数的调用不明确
改为sqrt(3.0)就可以了。但是3到3.0不会自动转换吗?
2016-10-03 16:46
ehszt
等 级:
贵宾
威 望:
40
帖 子:1728
专家分:3216
注 册:2015-12-2
第
2
楼
得分:0
这是不会的。
如我定义一下:float a;
a=4/5;
打印a,printf("%f",a);得到的结果不是0.8而是0。把4改成4.0或把5改成5.0才能得到正确的结果。
2016-10-03 17:35
cpxuvs
等 级:
论坛游侠
威 望:
3
帖 子:45
专家分:142
注 册:2015-12-22
第
3
楼
得分:0
回复 2楼 ehszt
你说的我知道,但是和我说的问题好像不一样吧。。。
c语言里的类型转换,不是很懂。
2016-10-03 17:58
ehszt
等 级:
贵宾
威 望:
40
帖 子:1728
专家分:3216
注 册:2015-12-2
第
4
楼
得分:0
回复 3楼 cpxuvs
针对你的问题我刚才试了一下,没你说的情况。
请贴出现问题的源代码。
2016-10-03 18:33
rjsp
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册:2011-1-18
第
5
楼
得分:0
估计你用的不是C,而是C++
对c++而言,编译器不知道你是想调用 sqrt( double ) 还是 sqrt( float )
2016-10-03 18:48
cpxuvs
等 级:
论坛游侠
威 望:
3
帖 子:45
专家分:142
注 册:2015-12-22
第
6
楼
得分:0
回复 4楼 ehszt
其他的我都注释了。
不过我保存的是.cpp。
2016-10-03 18:51
cpxuvs
等 级:
论坛游侠
威 望:
3
帖 子:45
专家分:142
注 册:2015-12-22
第
7
楼
得分:0
我看了一下报错信息,是不能确定float sqrt(float) 还是double sqrt(double)。。。
2016-10-03 18:56
ehszt
等 级:
贵宾
威 望:
40
帖 子:1728
专家分:3216
注 册:2015-12-2
第
8
楼
得分:0
回复 6楼 cpxuvs
我用的是dev c++,也保存的是cpp不过没你说的问题。
2016-10-03 19:24
linlulu001
等 级:
贵宾
威 望:
20
帖 子:944
专家分:4047
注 册:2016-4-13
第
9
楼
得分:0
编译器的的原因,很多编译器能正常通过,少数不行,也不排除.c和.cpp之间的区别(现在看来这个可能性较小)。
你只要知道sqrt()里的参数是浮点型,使用的时候注意点,人工强制转换。
2016-10-03 19:43
9
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-469401-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.362194 second(s), 10 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved