Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 16.03.2011
Сообщений: 24

Float - Invalid floating point operation

12.11.2011, 22:51. Показов 3186. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.11.2011, 22:51
Ответы с готовыми решениями:

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

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++ Builder 6.0. Потом удалил его. Сейчас...

11
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
12.11.2011, 22:56
99,9% деление на ноль.
0
1 / 1 / 0
Регистрация: 16.03.2011
Сообщений: 24
12.11.2011, 23:10  [ТС]
нет, прям перед x=f2/f1 смотрю значения их - все хорошо, а потом сразу ошибка
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
12.11.2011, 23:15
Invalid floating point operation.
Недействительная операция с плавающей запятой.
0
1 / 1 / 0
Регистрация: 16.03.2011
Сообщений: 24
12.11.2011, 23:20  [ТС]
суть я понимаю, но почему она там появляется, там делится 2048 на 512...
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
12.11.2011, 23:26
Цитата Сообщение от 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
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
12.11.2011, 23:29
Цитата Сообщение от alex68tmb Посмотреть сообщение
суть я понимаю, но почему она там появляется, там делится 2048 на 512...
я так понимаю -
2048/512=4
а это int , а не float.
0
1 / 1 / 0
Регистрация: 16.03.2011
Сообщений: 24
12.11.2011, 23:48  [ТС]
эт я от безысходности пробовал.
f2 и f1 которые передаются float. мне float x обязательно нужен.
а если f2 и f1 сделать int то все работает

Добавлено через 1 минуту
порядок не важен.
она работает по button1, а по button3 не хочет, хотя тоже самое
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
12.11.2011, 23:55
Попробуй проект пересоздать, мб что-то в настройках сбилось. И проверь перекрестные объявления переменных.
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  [ТС]
пересобрал. никак.
может проще проек выложить?
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
13.11.2011, 00:21
Проект или более подробный его листинг ты выложить можешь...
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
13.11.2011, 00:44
А оазделитель дробной части - DecamalSeparator - в системе какой ? а у вас? хотя там у вас не один флоат...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2011, 00:44
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru