求助DELPHI的问题?

edit1、edit2、edit3和一个button
edit1为输入框,edit2、edit3为显示栏
要求点击button的时候当edit1的数据小于200时edit2显示为原数,大于200小于300时,edit2显示数为(edit1的数-200)/2+200,当edit1数据大于300时,edit2显示为250
而edit3的数据则是当edit1的数据小于300时,显示为edit1的数据的10%,当edit1的数据大于300时,每过100edit3的数据则加30,比如edit1为430,edit应该是73,edit1为699,edit3为159,edit1为700,则edit3为190,请问各位高手这种情况应该如何写代码?
谢谢大家,不过edit3里面的数据必须四舍五入保留小数点后两位,请问应该怎么写?
(i-300)/100*30应该解释不通的吧
如果我是350的话那edit3里面不是=35+1.5=36.5
我要求的是=35呀

仅Edit1.Text='699'时和你说的不对!

699*10%=69.9
(699-300)div100=3
69.9+3*30=159.9 Edit1的个位不是零的话,结果就应该有小数

procedure TForm1.Button1Click(Sender: TObject);
var
i:real;
k:integer;
begin
i := StrToFloat(Edit1.Text);
k := Round(i);
if i<=300 then begin
if i<=200 then
Edit2.Text := Edit1.Text
else
Edit2.Text := FormatFloat('0.00',((i-200)/2+200));
Edit3.Text := FormatFloat('0.00',(i/10));
end else begin
Edit2.Text := '250';
Edit3.Text := FormatFloat('0.00',(i/10+((k-300) div 100)*30));
end;
end;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-21
procedure TForm1.Button1Click(Sender: TObject);
var
a:double;
b:integer;
begin
a:=strtofloat(edit1.Text);
if a<=200 then
edit2.Text:=edit1.Text;
if (a>200) and (a<300) then
edit2.Text:=floattostr((a-200)/2+200);
if a>=300 then
edit2.Text:='250';
if a<300 then
edit3.Text:=floattostr(a*0.1)
else
begin
b:=round((a-300)/100);
edit3.Text:=floattostr(round(a*0.1+b*30));
end;
end;
请指正.因为你的条件里面都是整数,所以用了一个取整函数~
相似回答