-1.#INF原因

c++ 错误

#include < math.h>
sqrt(a);
如果a<0 的话,vc++ 并不提示错误,而是输出 "-1.#IND"
x/y;
如果x<0,y是常量0的话,会提示错误;但如果是表达式=0的话,并不提示错误,但结果是"-1.#INF"
如果x>0, 表达式y=0的话,结果是"1.#INF"

http://power.itp.ac.cn/~ssbao/index/home/diary/2006/915-2.htm

 

在VC6.0中计算表达式log(1/4)/log(2),运行结果为-1.#INF;计算表达式log(4)/log(2),能得到正确结果。

在VS中计算上述两个表达式,均得不到结果,出现了如下一些编译错误:

1>e:/vc/example/projects/helloworld1/helloworld1/对数.cpp(7) : error C2668: “log”: 对重载函数的调用不明确
1>        d:/program files/microsoft visual studio 8/vc/include/math.h(567): 可能是“long double log(long double)”
1>        d:/program files/microsoft visual studio 8/vc/include/math.h(519): 或“float log(float)”
1>        d:/program files/microsoft visual studio 8/vc/include/math.h(121): 或“double log(double)”
1>        试图匹配参数列表“(int)”时
1>e:/vc/example/projects/helloworld1/helloworld1/对数.cpp(7) : error C2668: “log”: 对重载函数的调用不明确
1>        d:/program files/microsoft visual studio 8/vc/include/math.h(567): 可能是“long double log(long double)”
1>        d:/program files/microsoft visual studio 8/vc/include/math.h(519): 或“float log(float)”
1>        d:/program files/microsoft visual studio 8/vc/include/math.h(121): 或“double log(double)”
1>        试图匹配参数列表“(int)”时
看了这些错误,心里一片茫然,因为错误都出现在<math.h>中,我以为vs没装好。
真想去撞死啊~~仔细想想,这显然提示的是类型不匹配。

改为log(4.0/2.0)就OK,其余类似。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值