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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2014, 23:45   #1
Jekasea
Пользователь
 
Регистрация: 03.05.2013
Сообщений: 47
По умолчанию Ошибка при округлении.

Пишу
Код:
procedure TForm1.Button1Click(Sender: TObject);
Var Pr1,pr2,pr3,pr4:Real;
begin
if Edit1.Text='' then Edit1.Text:='0';
  Pr1:=StrToFloat(StringGrid2.Cells[1,2])*(strtofloat(Edit1.Text))/100;
  Pr2:=StrToFloat(StringGrid2.Cells[2,2])*(strtofloat(Edit1.Text))/100;
  Pr3:=StrToFloat(StringGrid2.Cells[3,2])*(strtofloat(Edit1.Text))/100;
  Pr4:=StrToFloat(StringGrid2.Cells[4,2])*(strtofloat(Edit1.Text))/100;

  StringGrid2.Cells[1,3]:='    '+FloatToStr(Pr1,ffFixed, 6, 2);
  StringGrid2.Cells[2,3]:='    '+FloatToStr(Pr2);
  StringGrid2.Cells[3,3]:='    '+FloatToStr(Pr3);
  StringGrid2.Cells[4,3]:='    '+FloatToStr(Pr4);
end;
в строке
Код:
Pr1,ffFixed, 6, 2
выдает ошибку: Error] Unit3.pas(350): Too many actual parameters
В чем дело? подскажите.
Jekasea вне форума Ответить с цитированием
Старый 18.01.2014, 23:51   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
В чем дело?
В том, о чем в сообщении компилятора говорится - слишком много фактических параметров
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 19.01.2014, 00:24   #3
Jekasea
Пользователь
 
Регистрация: 03.05.2013
Сообщений: 47
По умолчанию

Да, программа большая. Много фактических и формальных параметров.
Поможет-ли добавление нового модуля?
Или что-то можно другое предпринять.
Не разу с такой проблемой не сталкивался.
Jekasea вне форума Ответить с цитированием
Старый 19.01.2014, 00:28   #4
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Поможет почитать справку по функциям FloatToStr и RoundTo
type_Oleg на форуме Ответить с цитированием
Старый 19.01.2014, 01:22   #5
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,877
По умолчанию

Цитата:
Или что-то можно другое предпринять.
Добавить одну букву FloatToStrF
northener вне форума Ответить с цитированием
Старый 19.01.2014, 02:12   #6
Jekasea
Пользователь
 
Регистрация: 03.05.2013
Сообщений: 47
По умолчанию

М..да, пропустил одну букву и зашел в "темный лес".
Буду внимательнее.
Спасибо! все работает.
По весам нажал.

Есть еще вопрос.
Код:
r1:=(strtofloat(StringGrid2.Cells[1,1]))*41.05;
StringGrid2.Cells[1,2]:='    '+floattostr(r1);
Вычисляется денежная сумма.
Результаты примерно такие 8404,2 ; 9330,5 и т.д.
В конце нужно добавить 0, т.е. что-бы числа имели два знака после запятой.
Как это сделать? Какие операторы для этого применяются?

Спрошу проще.
Каким оператором определить количество знаков (символов) после запятой?

Последний раз редактировалось Stilet; 19.01.2014 в 11:15.
Jekasea вне форума Ответить с цитированием
Старый 19.01.2014, 02:42   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

FloatToStrF
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 19.01.2014, 02:46   #8
Jekasea
Пользователь
 
Регистрация: 03.05.2013
Сообщений: 47
По умолчанию

FloatToStrF конвентирует, а не определяет.
Jekasea вне форума Ответить с цитированием
Старый 19.01.2014, 03:01   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Каким оператором определить количество знаков (символов) после запятой
Операторы паскаля http://solidbase.karelia.ru/edu/zonna/5_pascal_3.htm
Свойств у стрингрида таких нет и быть не может по определению.
Вот в FloatToStrF есть параметр определяющий количество знаков после запятой при преобразовании
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 19.01.2014, 03:04   #10
Jekasea
Пользователь
 
Регистрация: 03.05.2013
Сообщений: 47
По умолчанию

Не совсем точно я сформулировал вопрос, извиняйте!
Каким оператором "отбросить" дробную часть и превратить ее в целую?
Таким образом сосчитаю копейки, т е. по два числа после запятой.
Jekasea вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где ошибка? При билдинге ошибок 0, но при запуске вылетает ошибка. Visual C nikitabool Помощь студентам 0 08.01.2014 17:19
Ошибка при использовании vfprintf в dll при stdout CHERTS Visual C++ 1 25.10.2013 15:18
ошибка при исполнении (что то при установке компонентов) designer999 Компоненты Delphi 0 18.10.2010 22:03
Ошибка при компиляции pasha1993 Помощь студентам 1 21.09.2010 19:48
Вычисление количества элементов массива, которые при округлении дают 6 Катюшенька Помощь студентам 4 22.12.2008 23:44