Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2010, 21:47   #1
mistik16
 
Регистрация: 03.06.2009
Сообщений: 4
По умолчанию Нужно округлить дробные числа!

Помогите пожалуйста,а то я не знаю как это сделать((
Вот код:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
a:array of real;// массив дробных чисел
summ:real; // сумма чисел
sr:real; // среднее арифметическе
i,n:integer; // переменная цикла
p1,p2:integer;
pr:real;
begin
spinedit1.Value:=stringgrid1.ColCou nt;
n:=stringgrid1.ColCount;
setlength(a,n+1);
for i:=1 to n do
begin
p1:=random(999);
p2:=random(999);
pr:=p1/p2;
stringgrid1.Cells[i-1,0]:=floattostr(pr);
a[i]:=strtofloat(stringgrid1.Cells[i-1,0]);
end;
summ:=0;
for i:=1 to n do
summ:=summ+a[i]; // получение суммы элементов массива
sr:=summ/n; // среднее арифметическое
label2.Caption:=' сумма элементов = '+floattostr(summ)+#13+
' среднее арифметическое = '+floattostr(sr);

Последний раз редактировалось mistik16; 09.02.2010 в 21:50.
mistik16 вне форума Ответить с цитированием
Старый 09.02.2010, 22:14   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

для округления дробных чисел есть функция Round
чтобы при делении получать сразу целые числа, а не округлять их потом используют вместо знака делить "/" слово div
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 09.02.2010, 22:20   #3
mistik16
 
Регистрация: 03.06.2009
Сообщений: 4
По умолчанию

ошибку выдаёт...((
mistik16 вне форума Ответить с цитированием
Старый 09.02.2010, 22:43   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
ошибку выдаёт...((
Код:
   p1:=random(999);
   p2:=random(998) + 1;
   pr:=p1/p2
В значение р2 попадает ноль => ошибка деления на ноль.
eoln вне форума Ответить с цитированием
Старый 09.02.2010, 23:09   #5
mistik16
 
Регистрация: 03.06.2009
Сообщений: 4
По умолчанию

команда DIV не работает ни так, ни так...а round округляет до ближайшего целого,а мне нужно до 2 знаков после запятой.
mistik16 вне форума Ответить с цитированием
Старый 09.02.2010, 23:30   #6
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

label2.Caption:=' сумма элементов = '+???+#13
где ??? =
1) formatfloat('#.##', summ) (не очень хороший способ)
2) floattostrf(summ, ffFixed,0,2)
3) floattostr(RoundTo(summ,-2)) (uses math)
4) поиск по форуму или google...

Последний раз редактировалось eoln; 09.02.2010 в 23:33. Причина: uses math
eoln вне форума Ответить с цитированием
Старый 09.02.2010, 23:38   #7
mistik16
 
Регистрация: 03.06.2009
Сообщений: 4
По умолчанию

Спасибочки Вам огромное!!!!2 вариант то, что нужно!!)))

Последний раз редактировалось mistik16; 09.02.2010 в 23:43.
mistik16 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как округлить числа во всём столбце(2500 ячеек)? Danatos Microsoft Office Excel 13 15.02.2011 06:08
Дробные числа Oksanator Помощь студентам 7 05.01.2010 19:11
Дробные числа Vitalik55 БД в Delphi 3 10.06.2009 23:08
Дробные числа EAAlien Общие вопросы Delphi 8 13.05.2008 19:09
подскажите какая процедура округляет дробные числа , а не откидывает дробную часть, к ***СкаЙ*** Помощь студентам 5 13.06.2007 16:03