Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
7 / 7 / 4
Регистрация: 16.02.2013
Сообщений: 172
1

Что обозначает сообщение "Плавающая точка переполнения". При работе со СТРИНГРИД

13.09.2013, 18:58. Показов 1043. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте Форумчани. Всех с прошедшим летом. Начинаем работать.
Тема следующая. Создал форму. Решаю обычный пример с помощью Стрингрид.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
float I,J,s,f,y,w,w1,s15,f1,d1,y1,w11,T,V,Q,Q1,K,C;
 double s3,s1,s2,s31,s11,R,L,C1,d,S,S1;
 
 
for (float J=1;J<Form->StringGrid1->RowCount;J++)
  {
 
f=2;
d+=StrToFloat(Form->StringGrid1->Cells[1][J])/f;
s3 = SimpleRoundTo(d,-5);
 String str = FormatFloat("0.0", d);
s3 = FormatFloat("0.0", d).ToDouble();
 
   }
   for (float J=1;J<Form->StringGrid1->RowCount;J++)
  {
 
 y+=StrToFloat((Form70->StringGrid1->Cells[1][J])-s3);
 
w=(y*f);
   }
 
w1=StrToFloat(sqrt(w)); 
 
s2 = SimpleRoundTo(w1,-5);
String str3 = FormatFloat("0.0", w1);
s2 = FormatFloat("0.0", w1).ToDouble();
 
Form1->Label1->Caption=FloatToStr(s2);
 
 for (float J=1;J<Form->StringGrid1->RowCount;J++)
  {
 
f1=3;
d1+=StrToFloat(Form70->StringGrid1->Cells[2][J])/f1;
s31 = SimpleRoundTo(d1,-5);
 String str4 = FormatFloat("0.0", d1);
s31 = FormatFloat("0.0", d1).ToDouble();
 
   }
 
  for (float J=1;J<Form1->StringGrid1->RowCount;J++)
  {
 
 y1+=StrToFloat((Form1->StringGrid1->Cells[2][J])-s31);
 
w11=(y1*f1);
 
     }
 
  for (float J=1;J<Form1->StringGrid1->RowCount;J++)
    {
 T=StrToFloat(w11);
 
R = SimpleRoundTo(T,-5);
String str6 = FormatFloat("0.0", T);
R = FormatFloat("0.0", T).ToDouble();
 
 Form1->Label2->Caption=FloatToStr(R);
 
  }
 
 for (float J=1;J<Form1->StringGrid1->RowCount;J++)
  {
  V=(Form1->StringGrid1->RowCount-1);
 Q=StrToFloat((Form1->StringGrid1->Cells[1][J])+s3);
 Q1=StrToFloat((Form1->StringGrid1->Cells[2][J])-s31);
K+=((Q*Q1V);
L = SimpleRoundTo(K,-5);
 String str2 = FormatFloat("0.0", K);
L = FormatFloat("0.0", K).ToDouble();
 
 C=(L*R*s2);
    C1 = SimpleRoundTo(C,-5);
 String str7 = FormatFloat("0.0", C);
C1 = FormatFloat("0.0", C).ToDouble();
    Form1->Label3->Caption=FloatToStr(C1)};
Для уменьшения разрядности я применяю следующий алгоритм
C++
1
2
3
4
5
float a,b,c;
double s,d;
s = SimpleRoundTo(a,-5);
 String str = FormatFloat("0.0", a);
s = FormatFloat("0.0", a).ToDouble();
Произвожу компиляцию. При нажатии на кнопку батон, которая расположена на форме, появляется ошибка- "Плавающая точка переполнения" (Floating point overflow). Я думая что это происходит из-за того что я применяю несколько раз алгоритм уменьшения разрядности. Если не трудно подскажите. Заранее благодарен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.09.2013, 18:58
Ответы с готовыми решениями:

Что обозначает точка с запятой в цикле
Что обозначает ; в цикле? Например, for( ;n&lt;f &amp;&amp; k&lt;l; k++ )

Плавающая ошибка при работе с threads
Добрый день, вот наконец-то столкнулся с проблемой, справиться с которой сам всяко не смогу и, даже...

Как избежать переполнения при работе с большими числами
При написании программы возникла проблема с большими числами. У меня есть число, которое копится в...

Пусть F(x, y, z) обозначает предикат. Что обозначает выражение Ф (3, 4, 5)?
Пусть Ф (x, y, z) обозначает предикат x2 + y2 = z2 ( x, y, z пробегают множество действительных...

Нужно сделать так, чтобы в калькуляторе при нажатии на запятую (плавающая точка) перед ней появлялся ноль
Я сделал так, чтобы ставилось, если не было перед ней числа или действия. Типа *пустое поле*,...

4
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
14.09.2013, 01:06 2
Выполни пошагово найди строку в которой ошибка. Зачем нужна эта строка?
C++
1
s = FormatFloat("0.0", a).ToDouble();
0
7 / 7 / 4
Регистрация: 16.02.2013
Сообщений: 172
14.09.2013, 11:14  [ТС] 3
Это строка нужна для уменьшения разрядности. Количество нулей после запятой определяют разрядность полученного результата, т.е. количество чисел после запятой. Если не трудно сделайте эксперимент.
0
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
14.09.2013, 13:05 4
А чем она отличается от этой s = SimpleRoundTo(a,-1);
Это довольно странная конструкция:
Цитата Сообщение от VOVA-74 Посмотреть сообщение
C++
1
2
3
4
float a,b,c; double s,d; 
s = SimpleRoundTo(a,-5); 
String str = FormatFloat("0.0", a); 
s = FormatFloat("0.0", a).ToDouble();
1
7 / 7 / 4
Регистрация: 16.02.2013
Сообщений: 172
14.09.2013, 14:08  [ТС] 5
Вы знаете gumi250 Вы были правы. Я благодарен Вам за поддержку и помощь.
0
14.09.2013, 14:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.09.2013, 14:08
Помогаю со студенческими работами здесь

Нужно сделать так, чтобы в калькуляторе при нажатии на запятую (плавающая точка) перед ней появлялся ноль
Я сделал так, чтобы ставилось, если не было перед ней числа или действия. Типа *пустое поле*,...

Как сделать так,что бы при введение,например 0;0 выдавалось сообщение,что точка находится на границе?
#include &lt;iostream&gt; using namespace std; int main(){ double x, y; int R=10...

Что обозначает при ассемблировании кода параметры /t /x?
кто подскажет, что обозначает при ассемблировании кода параметры /t /x? например tlink name.obj /t...

"Программа завершена из-за переполнения программного стека" при работе рекурсивной функции
Здравствуйте Задание:Вычислить рекурсивно функцию вида у=COS(X)+COS(X^2)+COS(X^3)+...+COS( X^N)...

Плавающая точка
есть текст бокс, в него вводится число с плавающей точкой. После некоторых манипуляций в коде нужно...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru