回 帖 发 新 帖 刷新版面

主题:帮我看下哪里出问题了

Multi := StrToInt(FUserPass) * StrToInt(RandomNum);

运行的时候会报错说'432423543' is not a valid integer value,单引号里的是由RandomNum产生的随机的数字字符串,下面是产生随机数的代码

function TDModule.GetRandomNum: string;
var
  i: Integer;
begin
  Randomize;
  RandomNum := '';

  for i := 0 to 9 do
  RandomNum := RandomNum + Char(Byte('0')+Byte(Random(10)));

  Result := RandomNum;
end;

回复列表 (共5个回复)

沙发

我经过反复试验,问题的确出在StrToInt(RandomNum),是什么原因呢,应该怎么改呢

板凳

割!

3 楼

我知道错误了,是超出INT的范围了,现在又有新问题,Multi := StrToInt64(FUserPass) * StrToInt64(RandomNum);   这个10位*10位的数还是超出了INT64的范围,INT64似乎是最大的整形类型了,请问怎么办呢,分高低位吗,这个我不是很会啊,有具体的程序例子吗?

4 楼

超过范围了

5 楼

ding

我来回复

您尚未登录,请登录后再回复。点此登录或注册