我的程序中有这个代码:(我为调试目的包含了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 ...... 我把这个公式放在那里我做错了什么?
答案 0 :(得分:9)
毫无疑问,您将a
和b
定义为整数,从而导致整个公式在整数数学中完成。将它们定义为浮点数或执行以下操作:
constant[0] = (-b / (2.0 * a));
强制数学以浮点形式完成。
答案 1 :(得分:2)
常数是integer
吗? a
和b
是否为整数?
cout << "b: " << b << "\na: " << a;
constant[0] = (-b / (2.0 * a));
cout << "\nconstant: " << constant[0] << endl;
整数除法和/或变量类型是个问题。
答案 2 :(得分:1)
你的常数2是一个int,使它成为2.0。
确保您的变量a和b也是双倍或浮点数?