0

我的程序中有这段代码:(出于调试目的,我包含了 cout 语句)

cout << "b: " << b << "\na: " << a;
constant[0] = (-b / (2 * a));
cout << "\nconstant: " << constant[0] << endl;

我得到的输出是:

b: -4
a: 3
constant: 0

而我试图使常量 [0] 等于 -(-4)/(2 * 3) 或 0.6666...我放在那里的公式有什么问题?

4

3 回答 3

9

毫无疑问,您拥有ab定义为整数,导致您的整个公式以整数数学形式完成。将它们定义为浮点数或执行以下操作:

constant[0] = (-b / (2.0 * a));

这迫使数学以浮点数完成。

于 2010-02-23T07:48:54.453 回答
2

是常数integer吗?是ab整数吗?

cout << "b: " << b << "\na: " << a;
constant[0] = (-b / (2.0 * a));
cout << "\nconstant: " << constant[0] << endl;

整数除法和/或变量类型是问题所在。

于 2010-02-23T07:48:54.213 回答
1

你的常数 2 是一个 int,使它成为 2.0。

确保您的变量 a 和 b 也是双精度数或浮点数?

于 2010-02-23T07:48:45.040 回答