这句子那里错了,老返回错误答案?

sixgj 2017-11-05 01:43:08
if DBEdit1.Text='0' then
begin
A:=0;
end
else
if DBEdit1.Text<'10' then
begin
A:=strtoint(DBedit2.text)-strtoint(DBedit1.text); //当DBEdit1.Text数为20时就自动跑到这里了?????
end
else
if DBEdit1.Text>'10' then
A:=1;

...全文
235 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lyhoo163 2017-11-05

  if (DBEdit1.Text<>'') then
  begin
    if StrToInt(DBEdit1.Text)=0 then
    begin
      A:=0;
    end
    else begin
      if StrToInt(DBEdit1.Text)<10 then
      begin
        A:=strtoint(DBedit2.text)-strtoint(DBedit1.text);
      end
      else begin
        if StrToInt(DBEdit1.Text)>10 then A:=1;
      end;
    end;
  end;
第一句也要改。这样比较好。
回复
lyhoo163 2017-11-05
  if DBEdit1.Text='0' then
  begin
    A:=0;
  end
  else begin
    if StrToInt(DBEdit1.Text)<10 then
    begin
      A:=strtoint(DBedit2.text)-strtoint(DBedit1.text);
    end
    else begin
      if StrToInt(DBEdit1.Text)>10 then A:=1;
    end;
  end;
这样,比较好。“原句中进行字符串比较”
回复
日月路明 2017-11-05
另外 DBEdit1.Text<'10'  这种比较数字的方法不对
回复
日月路明 2017-11-05
楼主代码太low,在确定各个控件均为有效数字的情况下,可以改写成: a:=strtoint(DBedit1.text); if a>10 then A:=1 else if A>0 then A:=strtoint(DBedit2.text)-A 不知道楼主对于a<0是如何处理的
回复
相关推荐
发帖
语言基础/算法/系统设计
创建于2007-08-02

1.6w+

社区成员

Delphi 语言基础/算法/系统设计
申请成为版主
帖子事件
创建了帖子
2017-11-05 01:43
社区公告
暂无公告