Помогите пожалуйста с delphi
В edit1 вводим общую сумму. В edit 2 и 3 вводим процент, а в edit 4 должно появится число от этого процента.
и так же в edit 5
преподаватель сказал там нужно использовать функции strtoint и inttostr
В edit1 вводим общую сумму. В edit 2 и 3 вводим процент, а в edit 4 должно появится число от этого процента.
и так же в edit 5
преподаватель сказал там нужно использовать функции strtoint и inttostr
Правильно сказал, т. к. в поле edit информация вводится в строковом виде. strtoint преобразует строковый вид в целый типа integer или longint. Ф ункция inttostr наоборот преобразует типы integer или longint в строку. НО как процент от чиста может быть целым? Тут вероятность малая.. . Поэтому надо исвользовать процедуры str и val.
Пример
Var
s:string;
z,z1,z2:real;
c:integer;
begin
s:=Edit1.Text;//В качестве разделителя целой част ль десятичной использовать символ "." точка
val(s,z,c);//z-значение поля Edit1 в числовом формате c=0 при корректом переводе в числовой формат
s:=Edit2.Text;
val(s,z1,c);
str((z*z1/100):5:2,s);//Вычисляем процент и переводим в текстовый формат
Edit3.Text:=s;
end;
ИЛИ
var
z,z1:integer;
s:string;
begin
s:=Edit1.Text;
z:=strtoint(s);
s:=Edit1.Text;
z1:=strtoint(s);
s:=inttostr(z*z1/100);// И если здесь выдаст ошибку о не соответствии типов я не виноват.. . Пеняйте на препода.
Edit3.Text:=s;
end;
Или так. Тут используйте тот разделитель целой части от дробной, который стоит у Вас в винде по умолчанию.
var
z,z1:real;
s:string;
begin
s:=Edit1.Text;
z:=strtofloat(s);
s:=Edit1.Text;
z1:=strtofloat(s);
s:=floattostr(z*z1/100);//
Edit3.Text:=s;