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

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;

...全文
262 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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是如何处理的

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧