Как я могу исправить эту формулу ошибки? - PullRequest
0 голосов
/ 23 февраля 2010

У меня есть код в моей программе: (я включил операторы 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 ... Что я делаю не так с формулой, которую я там поставил?

Ответы [ 3 ]

9 голосов
/ 23 февраля 2010

Несомненно, у вас есть a и b, определенные как целые числа, в результате чего вся ваша формула выполняется в целочисленной математике. Либо определите их как числа с плавающей точкой, либо сделайте что-то вроде этого:

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

, что заставляет выполнять математику с плавающей запятой.

2 голосов
/ 23 февраля 2010

Является ли константа integer? a и b целые числа?

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

Целочисленное деление и / или типы переменных являются проблемой.

1 голос
/ 23 февраля 2010

Ваша константа 2 - это целое число, сделайте его 2.0.

Убедитесь, что ваши переменные a и b тоже двойные или с плавающей точкой?

...