Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
9 / 9 / 1
Регистрация: 22.02.2011
Сообщений: 203

floating point error

04.09.2012, 17:18. Показов 2094. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
int i = 124; int j = 0; "c" и "y" это float с диапазоном от 1 до 2; 
x это long double от 0.01 до 100; 
tempsum - long double; cr - long double;
--------------------------------------------------------------------------
for(; i>0; i--, j++)
{   cr = *c - (stp1.mass[j].y);
            correctmul(&cr, &csp, stp1);
    tempsum += (cr * stp1.mass[j].x * 1000);} //<--- overflow
в указанной строке происходит переполнение
мненужно только 5 знаков после запятой в самом крайнем случае.
с этой ошибкой я довольно часто сталкиваюсь так что мне нужно както решить ее основательно. раньше я просто увеличивал точность(double-> long double).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.09.2012, 17:18
Ответы с готовыми решениями:

Floating point error:Overfull
При выполнении программы пишет: Floating point error:Overfull #include&lt;stdio.h&gt; #include&lt;math.h&gt; int main(void) { unsigned n,i; ...

[C++ Error] Unit1.cpp(23): E2060 Illegal use of floating point
Ошибка на 22 строке //--------------------------------------------------------------------------- #include &lt;numeric.h&gt; #include...

Floating point error:Domain.Abnormal program termination - ??? это что значит?
Floating point error: Domain. Abnormal program termination #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; void main()...

7
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
04.09.2012, 17:26
значения переменных при переполнении покажи.
1
9 / 9 / 1
Регистрация: 22.02.2011
Сообщений: 203
04.09.2012, 21:16  [ТС]
tempsum = 80.013511776622025;
cr = -0.049996376037597656; - это 0.05 представленная в long double
stp1.mass[j].x = 0.029999999329447746 - это 0.03 представленная в long double
j = 122;
i = 2

Добавлено через 14 минут
tempsum = 78.513620529019278;
немного ошибся на один ход
cr = -0.059998035430908203; - это 0.06 представленная в long double
stp1.mass[j].x = 0.039999999105930328 - это 0.04 представленная в long double
j = 123;
i = 1;

Добавлено через 3 часа 13 минут
я разложил цикл получилось что переполнение вызывает
вот это выражение
stp1.mass[j].x * 1000;
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
04.09.2012, 21:22
Цитата Сообщение от korez Посмотреть сообщение
получилось что переполнение вызывает
вот это выражение
stp1.mass[j].x * 1000;
и какое значение имеет в этот момент
C++
1
stp1.mass[j].x
?
1
9 / 9 / 1
Регистрация: 22.02.2011
Сообщений: 203
04.09.2012, 22:49  [ТС]
stp1.mass[j].x = 0.039999999105930328

Добавлено через 53 секунды
novi4ok, как вообще бороться с переполнением чисел с плавающей точкой?
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
04.09.2012, 22:56
т.е. ты хочешь сказать, что при умножении трех сотых на тычесю возникает переполнение? что-то ты не там копал.

Добавлено через 6 минут
Цитата Сообщение от korez Посмотреть сообщение
stp1.mass[j].x = 0.039999999105930328

Добавлено через 53 секунды
novi4ok, как вообще бороться с переполнением чисел с плавающей точкой?
отлавливать и принимать меры. какие еще варианты? подозреваю, эта ситуация бросает особый случай. ловить и действовать по обстоятельствам. или погуглить-почитать, как народ борется. не приходилось вплотную сталкиваться. в фортране когда-то
1
9 / 9 / 1
Регистрация: 22.02.2011
Сообщений: 203
04.09.2012, 23:11  [ТС]
как отлавливать (перехватывать?).

Добавлено через 10 минут
сейчас еще раз проверил это точно так
stp1.mass[j].x = 0.039999999105930328;
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
05.09.2012, 10:22
а cr?

с "перехватывать" это был неправильный совет. почитал, народ убежден, что эти ситуации нужно предотвращать, используя правильные алгоритмы.
в ассемблере проще, там можно проверять после каждой операции так наз. флаг переполнения. он все равно проверяется, но в случае чего просто получишь результат 1.#INF или что-то подобное.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.09.2012, 10:22
Помогаю со студенческими работами здесь

Floating point overflow
помогите с проблемой-создал программу для вычисления уравнений с двумя неизвестными и выдает ошибку Floating point overflow вот кодvoid...

Illegal use of floating point
Подскажите в чем может быть дело: int sigmasignal=5,i,j,N=20; float vhmatrica, rsignal; double tsignal=0.2, delta=0.004,...

Illegal use of floating point
Подскажите, почему с++ ругается на мою функцию: float h (float a, float b) { return h=(a/1+pow(b,2))+(b/1+pow(a,2))-(a-b); } ...

Floating point overflow
Срочно нужна помощь! Когда ввожу значения n=30 и x=30 программа выдает следующую ошибку: &quot;Floating point overflow&quot;. При этом...

Floating point overflow
Дали елементарное задание решить кубическое уравнение, выдает ошибку &quot;Floating point overflow&quot;, незнаю что с ним делать Входящие...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru