2015-10-14 2 views
0

У меня есть условие,Проблема с двойным значением проверки C++

double startPoint; 
double endPoint; //I have initialised as 0 in constructor 

if((startPoint <= 0) && (endPoint <= 0)) 
{ 
    startPoint = 10; 
    endPoint = 100; 
} 

Когда я построю этот код в режиме отладки это условие удовлетворения. но в режиме выпуска он не удовлетворяет.

Журнал показывает, что эти значения startPoint и endPoint составляют 0,0000 и 0,0000.

+1

ли вы присвоить значения в эти переменные перед 'if'? Если да, то как именно? – interjay

+0

Вы не инициализируете их, или это просто опечатка? – SingerOfTheFall

+0

Опубликуйте [MCVE] (http://stackoverflow.com/help/mcve), пожалуйста. Из кода, который вы показали, невозможно диагностировать. – interjay

ответ

5

Вы не инициализирует значение ваших переменных, поэтому они имеют начальное случайное значение, которое может меняться в зависимости от режима сборки (отладки/выпуска), попробуйте вместо этого:

double startPoint = 0; 
double endPoint = 0; 
if((startPoint <= 0) && (endPoint <= 0)) 
{ 
    startPoint = 10; 
    endPoint = 100; 
} 
Смежные вопросы