为什么老说IF...THEN出错??
procedure TForm1.Button1Click(Sender: TObject);var
i:string;u,money:string;
begin
i:=edit1.text ;
u:=edit2.text;
if i<1000 then----红条老在这里出现.错误提示是说 Incompatible type:'string'and'integer'
money=i-u;
else if i>1000 and i<=2000 then
money=(i-u)*0.9 ;
else
end;
end.
请高手解释下是什么意思....谢谢...
还有这段代码没有出错的地方了吧?
是不是edit控件类型不符?要怎么写才行?
[[it] 本帖最后由 lfkm 于 2008-4-21 17:34 编辑 [/it]]
原因是因为类型不同,就应该把 i 这个变量转为整开再判断.
像下面这样应该就不会错了.
procedure TForm1.Button1Click(Sender: TObject);
var
i,u:Integer; //把i和u声明为整型;
money:Single; //把money声明为实型;
begin
i:=StrToInt(edit1.text) ; //把Edit1.Text转为整型再赋给变量i; 注意,Edit里你要限制输入的内容,否则容易出错.
u:=StrToInt(edit2.text); //把Edit1.Text转为整型再赋给变量u;
if i<1000 then //你的问题就出在这里.字符型怎么能跟整开比效呢?
money:=i-u //注意,这里不能加分号;
else if (i>1000) and (i<=2000) then //这里要加括号,注意他们的优先级.
money:=(i-u) * 0.9 ; //由于这里是实数相乘,所以money要声明为实型.
end; 呵呵,我以前也是学C的,Pascal语言没学过,也经常犯这种错
页:
[1]
