VS2008中的一个奇怪的双重计算

时间:2013-08-23 09:13:08

标签: c++ c

最近我正在研究一个项目,并在VS2008中遇到一个奇怪的问题。 在我的项目中,需要进行一些计算,但在计算之后我得到一个非法值(-1。#IND000000000000)。

例如:

double a,b,c,d;

我希望得到:

d=a*b+c*c;

但结果是-1。#IND000000000000。 但是,如果我先计算a * b:

double e=a*b;

然后我得到正确的d值:

d=e+c*c;

什么可以解释这种差异?

2 个答案:

答案 0 :(得分:1)

您没有初始化任何变量,因此您的程序结果完全无法预测。

添加一些实际值来执行算术,事情可以更顺利地进行......

答案 1 :(得分:0)

在表达式的情况下使用圆括号作为您的良好实践。它将避免混淆运营商的优先顺序,这需要加以考虑。