edit9.Text:=strtoint(price.Text) * strtofloat(discount.text);
edit8.Text:=strtoint(edit7.Text)-strtoint(edit9.Text);
//注:edit9,edit8,edit7,price,discount都是文本框
为什么这条会编译出错。price 中的内容是数据厍挷定的。数据厍中的类型为money,discount,edit8,edit7中的内容是输入的。这条语句出错是数据类型转换错误,为什么。
[Error] Unit6.pas(98): Incompatible types: 'String' and 'Extended'
[Error] Unit6.pas(103): Incompatible types: 'String' and 'Integer'
[Fatal Error] MDIAPP.DPR(13): Could not compile used unit 'Unit6.pas'

解决方案 »

  1.   

    edit9.Text:=FloatToStr(strtoint(price.Text) * strtofloat(discount.text));
    edit8.Text:=FloatToStr(strtoint(edit7.Text)-strtoint(edit9.Text));
      

  2.   

    edit9.Text:=floattostr(strtoint(price.Text) * strtofloat(discount.text));
    edit8.Text:=inttostr( strtoint(edit7.Text)-strtoint(edit9.Text));
      

  3.   

    看看下面的代码对你有没有帮助
    procedure Tspqh_app.ComboBox2Click(Sender: TObject);
    begin
    datamodule2.type_tab.Locate('name',combobox2.Text,[]);
       bm.Text:=datamodule2.type_tab.fields[57].AsString;
    if trim(datamodule2.type_tab.Fields[22].AsString)='y' then
       spqh_app.RadioGroup2.ItemIndex:=0 else spqh_app.Radiogroup2.ItemIndex:=1;
       if trim(datamodule2.type_tab.Fields[22].AsString)='NULL' then
        spqh_app.radiogroup2.itemindex:=-1;
       if trim(datamodule2.type_tab.Fields[2].AsString)='y' then
         begin
          spqh_app.dbedit8.Text:=datamodule2.type_tab.Fields[21].AsString;
          spqh_app.RadioGroup1.ItemIndex:=0;
        end else
       spqh_app.Radiogroup1.ItemIndex:=1;
      if trim(datamodule2.type_tab.Fields[2].AsString)='NULL' then
       spqh_app.radiogroup1.itemindex:=-1;
       spqh_app.dbedit31.Text:= formatfloat('0.00',datamodule2.type_tab.Fields[46].asfloat);
       spqh_app.dbedit32.Text:= formatfloat('0.000',datamodule2.type_tab.Fields[47].asfloat);
       spqh_app.dbedit33.Text:= formatfloat('0.0000',datamodule2.type_tab.Fields[48].asfloat);
       spqh_app.dbedit34.Text:= formatfloat('0.0000',datamodule2.type_tab.Fields[49].asfloat);
       spqh_app.dbedit35.Text:= formatfloat('0.0000',datamodule2.type_tab.Fields[50].asfloat);
       spqh_app.datetimepicker1.datetime:=strtodatetime(datamodule2.type_tab.Fields[24].AsString);
       spqh_app.datetimepicker2.datetime:=strtodatetime(datamodule2.type_tab.Fields[25].AsString);
       spqh_app.datetimepicker3.datetime:=strtodatetime(datamodule2.type_tab.Fields[26].AsString);
       spqh_app.datetimepicker4.datetime:=strtodatetime(datamodule2.type_tab.Fields[27].AsString);
    end;procedure Tspqh_app.SpeedButton1Click(Sender: TObject);
    begin
    dbedit18.Text:=inttostr(strtoint(trim(dbedit13.Text))+strtoint(trim(dbedit14.Text))+strtoint(trim(dbedit15.Text))+strtoint(trim(dbedit16.Text))+strtoint(trim(dbedit17.Text)));
    end;procedure Tspqh_app.SpeedButton2Click(Sender: TObject);
    begin
    try
    dbedit31.Text:=floattostr(1.06 * strtoint(trim(dbedit30.text)));
    dbedit32.Text:=floattostr(roundto(1.551 * strtofloat(trim(dbedit31.Text)),-3));
    dbedit33.Text:=floattostr(roundto(frac((strtofloat(trim(dbedit32.Text)) - strtofloat(trim(dbedit31.Text)))/strtofloat(trim(dbedit32.Text))),-4));
    dbedit34.Text:=floattostr(Roundto(1.137 * strtofloat(trim(dbedit32.Text)),-4));
    dbedit35.Text:=floattostr(Roundto(1.15 * strtofloat(trim(dbedit34.Text)),-4));except end;
    end;