Итак, у меня есть функция, которая выглядит примерно так:
float function(){
float x = SomeValue;
return x / SomeOtherValue;
}
В какой-то момент эта функция переполняется и возвращает действительно большое отрицательное значение. Чтобы попытаться отследить, где именно это происходит, я добавил оператор cout, чтобы функция выглядела следующим образом:
float function(){
float x = SomeValue;
cout << x;
return x / SomeOtherValue;
}
и это сработало! Конечно, я решил проблему с помощью двойного. Но мне любопытно, почему эта функция работала правильно, когда я следил за ней. Это типично, или может быть где-то еще ошибка, которую я пропускаю?
(Если это поможет, значение, хранящееся в float, является целочисленным, а не особо большим. Я просто помещаю его в float, чтобы избежать приведения.)