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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2010, 09:58   #1
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
Вопрос как записать?

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

procedure TForm1.btn1Click(Sender: TObject);
var a, b: integer; c: real;
begin
if (Edt1. Text<>'') and (Edt2. Text<>'') and (Edt3. Text<>'') then begin
a:=StrToInt (Edt2.Text);
b:=StrToInt (Edt3.Text);
ad:=StrToInt(edt1.Text);
c:= a/ad;
Edt4.Text:=Format('%f',[c]);
end;
end;

procedure TForm1.cbb1Change(Sender: TObject);
begin
case cbb1.ItemIndex of
0:
begin
edt3.Text := '0.21';
end;
1:
begin
edt3.Text := '0.28';
end;
2:
begin
edt3.Text := '0.42';
end;
end;
end;

Ответ всегда получается 0 - ка сделать чтобы был нормальный вывод
например 5/0,21=23,80 , а получатся всегда 0
Помог, нажми весы слева

Последний раз редактировалось grafgrial; 17.04.2010 в 10:29.
grafgrial вне форума Ответить с цитированием
Старый 17.04.2010, 14:25   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

сравни
Код:
strtoint('0.28');
и
Код:
strtofloat('0.28');
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 17.04.2010, 22:01   #3
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

EVG_M не понял тебя!
У меня вылазит вот такая ошибка
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 17.04.2010, 22:03   #4
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

Как я понял он считает 0.21 целым числом равным 0, подскажите как это исправить
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 17.04.2010, 22:10   #5
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

функция StrToInt(из строки в целое)
0.21 не есть целое
следовательно нужно использовать StrToFloat
Код:
a:=StrToFloat (Edt2.Text);
b:=StrToFloat (Edt3.Text);
ad:=StrToFloat(edt1.Text);
maLoy*508 вне форума Ответить с цитированием
Старый 17.04.2010, 22:24   #6
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

выдает вот такую ошибку
[Error] Unit1.pas(55): Incompatible types: 'Integer' and 'Extended'
[Error] Unit1.pas(56): Incompatible types: 'Integer' and 'Extended'
[Error] Unit1.pas(57): Incompatible types: 'Integer' and 'Extended'
[Error] Unit1.pas(58): Incompatible types: 'Integer' and 'Extended'

а может еще и в строке
var a, b: integer; c: real;
ошибка есть какая-то?
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 17.04.2010, 22:31   #7
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

Цитата:
а может еще и в строке
var a, b: integer; c: real;
ошибка есть какая-то?
да, проглядел...
поставь все real
maLoy*508 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как записать Логарифм в с++ PFFAN91 Помощь студентам 2 09.04.2010 18:15
Как записать формулу? ang Помощь студентам 1 05.04.2010 18:39
Как записать число пи в С++? Ol'ga Общие вопросы C/C++ 7 15.03.2010 14:41
Как записать на языке Паскаль nes@ Помощь студентам 4 01.11.2009 13:51
Как записать на диск delphin100 Общие вопросы Delphi 2 14.10.2007 22:55