关于正数的double型相乘再相加,结果出现负数结果(溢出?)的问题

C++语言 码拜 9年前 (2016-04-12) 2282次浏览
关于正数的double型相乘再相加,结果出现负数结果(溢出?)的问题
如上图所示:ps=p1*s1+p2*s2,这些变量均定义为double型。
关于正数的double型相乘再相加,结果出现负数结果(溢出?)的问题
运行后发现,如上图所示:
p1=0.997467…
p2=0.0025329…
s1=3979.422177…
s2=0.50322978…
而ps却出现了负数,应该是溢出了吧?造成的原因是什么?应该怎么样修改代码使程序能正确输出ps呢?
解决方案

40

代码没问题,而是题主你没有搞清楚,你单步调试的话,黄色箭头所在的行是还没有执行过的行
也就是说你还没有执行过ps = p1*s1+p2*s2所以ps就是你所看到的这么一个垃圾值,你再F11一下往后跑一行就行了

40

你断点在786这行,只是程序执行到这里,但还没有执行这一行的语句,你再过单步一条语句看一下

10

变量使用前先初始化下,便于调试观察~~~~~~~~

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于正数的double型相乘再相加,结果出现负数结果(溢出?)的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)