1 / 1 / 0
Регистрация: 16.03.2011
Сообщений: 24
1

Float - Invalid floating point operation

12.11.2011, 22:51. Показов 2645. Ответов 11
Метки нет (Все метки)

есть функция
C++
1
2
3
4
5
float TForm1::Calc( float f2, float f1, float f3, float f4, float C2, float af2, float pc2, float pc1, float pc3, float pc4 , float Z2 )
{
 x=f2/f1;
и т.д.
}
х само собой float. вызываю функцию так:
C++
1
if (ComboBox4->ItemIndex==0) Label3->Caption= FloatToStr(Calc( fc1, fc2, fc3, fc4, Cn1, af1, pc1, pc2, pc3, pc4, Z1 ));// HA 1
все работает.

а так:
C++
1
2
3
Param (2048.0, 512.0, 256, 256, 4);
Z2=16; Cn2=0.5;   x=0;
Form2->StringGrid2->Cells[2][2] =FloatToStr(Calc( fc1, fc2, fc3, fc4, Cn1, af1, pc1, pc2, pc3, pc4, Z1 ));
в этом месте x=f2/f1; говорит Invalid floating point operation.
значения f2, f1 как будто исчезают перед этим присваиванием.

 Комментарий модератора 
alex68tmb, Правила
3.3. Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п.
Изначальное название темы: "помогите чуть чуть".

Используйте тег вставки кода :
[CPP ]без пробелов[ /CPP] или кнопка C++ на панели окна редактирования сообщения.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2011, 22:51
Ответы с готовыми решениями:

Invalid floating point operation
Как отладить такую ошибку? В функции достаточно много различных вычислений, на ее вход каждый такт...

Invalid floating point operation
определяю массивы, заполняю нулями: float B1, B2; for(int i=0;i<200;i++) {B1=0, B2=0;} В...

Invalid floating point operation в Builder 6.0
Здравствуйте. У меня проблема. Несколько месяцев назад делал программы для диплома в Borland C++...

Ошибка 'invalid floating point operation'
Здравствуйте. сделал задачу, при вводе значения "0" выдает ошибку, и выкидывает с программы. с чем...

11
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
12.11.2011, 22:56 2
99,9% деление на ноль.
0
1 / 1 / 0
Регистрация: 16.03.2011
Сообщений: 24
12.11.2011, 23:10  [ТС] 3
нет, прям перед x=f2/f1 смотрю значения их - все хорошо, а потом сразу ошибка
0
LK
Заблокирован
12.11.2011, 23:15 4
Invalid floating point operation.
Недействительная операция с плавающей запятой.
0
1 / 1 / 0
Регистрация: 16.03.2011
Сообщений: 24
12.11.2011, 23:20  [ТС] 5
суть я понимаю, но почему она там появляется, там делится 2048 на 512...
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
12.11.2011, 23:26 6
Цитата Сообщение от alex68tmb Посмотреть сообщение
нет, прям перед x=f2/f1 смотрю значения их - все хорошо, а потом сразу ошибка
Нет, не все хорошо. Если в убрать сейчас всю лишнюю информацию то останется следующее.
C++
1
2
3
4
5
6
7
8
9
10
int X = 0; // надеюсь, что это переменная объявленная внутри класса.
//... много-много кода.
float Form1::Calc (float f2, float f1 /* ... */)
{
  x = f2 / f1; 
  //... много-много кода.
  return некий_флоат.
};
//... много-много кода.
AnsiString MyText = FloatToStr(calc(f1,f2));
Ошибки тут могут быть следующие: деление на ноль, некорректное преобразование Float из другого формата и крайне мало вероятно переменная, которую ты передаешь в функцию не инциализирована. И это все, если происходит как ты описал.

Обрати еще внимание, что функция описана как f2, f1. А ты передаешь в другом порядке, мб это важно.
0
LK
Заблокирован
12.11.2011, 23:29 7
Цитата Сообщение от alex68tmb Посмотреть сообщение
суть я понимаю, но почему она там появляется, там делится 2048 на 512...
я так понимаю -
2048/512=4
а это int , а не float.
0
1 / 1 / 0
Регистрация: 16.03.2011
Сообщений: 24
12.11.2011, 23:48  [ТС] 8
эт я от безысходности пробовал.
f2 и f1 которые передаются float. мне float x обязательно нужен.
а если f2 и f1 сделать int то все работает

Добавлено через 1 минуту
порядок не важен.
она работает по button1, а по button3 не хочет, хотя тоже самое
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
12.11.2011, 23:55 9
Попробуй проект пересоздать, мб что-то в настройках сбилось. И проверь перекрестные объявления переменных.
C++
1
2
3
float f2 = 2048.0, f1 = 512.0; // или float f2 = 2048, f1 = 512;
float x = f2/f1;
ShowMessage(FloatToStr(x));
Не выдал мне ошибки в новом проекте, проблема явно не в целых числах.
0
1 / 1 / 0
Регистрация: 16.03.2011
Сообщений: 24
13.11.2011, 00:14  [ТС] 10
пересобрал. никак.
может проще проек выложить?
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
13.11.2011, 00:21 11
Проект или более подробный его листинг ты выложить можешь...
0
LK
Заблокирован
13.11.2011, 00:44 12
А оазделитель дробной части - DecamalSeparator - в системе какой ? а у вас? хотя там у вас не один флоат...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2011, 00:44
Помогаю со студенческими работами здесь

Ошибка invalid floating point operation в cppWebBrowser
Добрый день! Столкнулся с появлением ошибки "invalid floating point operation" при выполнении кода ...

Объясните ошибку - Invalid floating point operation
Invalid floating point operation что это за ошибка???? очень нужно!!

Invalid Floating Point Operation при выводе графика
Привет и доброго времени суток. вообщем создавая курсовую прогу, она считает изгиб и прогибы...

Invalid floating point operation при попытке нарисовать график
Возникла следующая проблема: По непонятной мне причине на строке ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru