三个文本框
a b c b/(a+b)=% 后面是显示百分比procedure TForm1.edt21Change(Sender: TObject);
var
a,b,c:string
begin
a:=edt1.text
b:=edt2.text
c:=edt3.text
c%=b/(a+b)
end;

解决方案 »

  1.   

    edit3.text := '%' + FloatToStr(StrToFloat(b)/((StrToFloat(a)+StrToFloat(b))*100);
      

  2.   


    使用Format可读性会更好。
      

  3.   

    edit3.text := '%' + FloatToStr( StrToFloat(b)*100/( StrToFloat(a)+StrToFloat(b) )  );Sorry,多了一个(可读性是其次了,应该换TryStrToFloat才健壮,懒了
      

  4.   

    应该这样:
    var
    a,b,c:single;
    d: string;
    begin
    a:=StrToFloat(edt1.text);
    b:=StrToFloat(edt2.text);
    c:=StrToFloat(edt3.text);
    d:=Format('%.2f%%', [(b/(a+b))*100]);
    end;
      

  5.   

    不,应该这样:
    var
    a,b:single;
    begin
    a:=StrToFloat(edt1.text);
    b:=StrToFloat(edt2.text);
    edt3.Text:=Format('%.2f%%', [(b/(a+b))*100]);
    end; 
      

  6.   

    要把string转换成double计算
    所以,不如a,b,c就定义为double类型