程序一直告诉我写的数字不是整数

Program keeps telling that number I wrote isn't integer

我做了一个程序,它不断告诉我输入的数字不是整数。

我正在输入 100010110101,但弹出此错误:

代码:

procedure TForm1.Button1Click(Sender: TObject);
var
  m,lo,cshl,cdhl,cjhl,csl,cdl,cjl:integer;
begin
  m := StrToInt(Edit1.Text);
  cshl := m div 100000000000;
  cdhl := m div 10000000000 mod 10;
  cjhl := m div 10000000000 mod 100;
  csl := m div 1000000000 mod 1000;
  cdl := m div 100000000 mod 10000;
  cjl := m div 10000000 mod 100000;
  lo := cjl + cdl * 10 + csl * 100 + cjhl * 1000 + cdhl * 10000 + cshl  *100000;
  ShowMessage(IntToStr(lo));
end;

考虑Delphi(以及大多数语言)如何处理 32 位整数:Wikipedia

在此上下文中,Integer 是一个 32 位整数,任何小于 -2,147,483,648 或大于 2,147,483,647 的值都不是有效的 32 位整数。

"common sense" 表示整数范围从 -∞+∞,但在计算机体系结构中并非如此。

如果您想 "cover" 更多值,请使用 Int64

在您的情况下,代码应如下所示:

var
  m,lo,cshl,cdhl,cjhl,csl,cdl,cjl:Int64;
begin
  m := StrToInt64(Edit1.Text);
  ...
end;

干杯