Invalid Floating Point Operation
В результате программа периодически остаётся без одного параметра double, что приводит к её некоректной работе.
Как с этим бороться?
Код в студию! телепаты в отпуске.
Код - это, конечно, хорошо. С кодом, оно, конечно, проще. Только код разбросан по файлам.
Ошибку выкидывало тут:
{
return (FunctionSignificance );
}
Сейчас немного поправил код (методом Н.Тыка). Пока ошибка не выскакивает. Поглядим на процесс обкатки...
Код - это, конечно, хорошо. С кодом, оно, конечно, проще. Только код разбросан по файлам.
Ошибку выкидывало тут:
{
return (FunctionSignificance );
}
Сейчас немного поправил код (методом Н.Тыка). Пока ошибка не выскакивает. Поглядим на процесс обкатки...
У тебя, в твоем разбросанном коде гдето или выполняется конвертация строки в число или присвоение значения, и при этом не выполняется проверка на региональные установки. Т.е. вместо точки стоит запятая, или наоборот. Например, если региональные установки русские, этот код скорее всего сгенерит исключение:
//примерно тоже будет
test = 3.14;
//примерно так правильно
//Если выбивают ошибки - смотри в хелпы - код пишу по памяти.
char buffer[2]
if(!GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SDECIMAL,buffer,sizeof(buffer))){
DWORD result = GetLastError();
...
}
if(strcmp(buffer,",")){
double test = StrToFloat("3,14");
test = 3,14;
}
else if(strcmp(buffer,".")){
...
}
З.Ы. Только без обид - для вопросов на подобные темы есть форум "Сообщества чайников", если актуально - начать стоит с него.
Забавно, когда региональные настрйки в течении нескольких секунд меняются... Хотя за код спасибо...
Самое интересное в том, что в разбросанном коде ошибка выскакивает в цикле. То есть, два раза цикл проходит нормально, а на третий лепит ошибку.
Впрочем, машина не может ошибаться. Ошибается всегда человек.
З.Ы. "Чайником" быть не постыдно. Постыдно быть "чайником" и корчить из себя профи.
Забавно, когда региональные настрйки в течении нескольких секунд меняются... Хотя за код спасибо...
Самое интересное в том, что в разбросанном коде ошибка выскакивает в цикле. То есть, два раза цикл проходит нормально, а на третий лепит ошибку.
Впрочем, машина не может ошибаться. Ошибается всегда человек.
З.Ы. "Чайником" быть не постыдно. Постыдно быть "чайником" и корчить из себя профи.
глубокая мысль. Жаль поистягалась и поистерлась от употребления к месту и не к месту. В данном случае не к месту. Сообщения об ошибках надо читать. Они для того и пишутся.
А насчет цикла - проще всего установить точку останова и проверить - какое именно действие и в какой момент генерирует исключение. Зачастую это гораздо быстрее чем рассуждать о том чем не стыдно быть.
глубокая мысль. Жаль поистягалась и поистерлась от употребления к месту и не к месту. В данном случае не к месту. Сообщения об ошибках надо читать. Они для того и пишутся.
А насчет цикла - проще всего установить точку останова и проверить - какое именно действие и в какой момент генерирует исключение. Зачастую это гораздо быстрее чем рассуждать о том чем не стыдно быть.
Я хоть и чайник, но не идиот. Обнаружение момента исключения ничем мне не помогло...