var
f:double;
s:string;
e:integer;
begin
e:=29 //////注意这里只能最大到29,如果再大,就溢出开始循环!!!!!
f:=2 shl e;
if f>2 then
begin
s:=floattostr(f);
edit1.Text:=s;
end;
end;
但是在VB中,Private Sub Command1_Click()
Dim f
f = 2 ^ 310
Text1.Text = f
End Sub
f也是Double类型,数值范围却可以!!!!
大家讨论,应该如何处理呢??????
f:double;
s:string;
e:integer;
begin
e:=29 //////注意这里只能最大到29,如果再大,就溢出开始循环!!!!!
f:=2 shl e;
if f>2 then
begin
s:=floattostr(f);
edit1.Text:=s;
end;
end;
但是在VB中,Private Sub Command1_Click()
Dim f
f = 2 ^ 310
Text1.Text = f
End Sub
f也是Double类型,数值范围却可以!!!!
大家讨论,应该如何处理呢??????
你这句话是啥子意思?>var
> e:integer;
>e:=29 //////注意这里只能最大到29,如果再大,就溢出开始循环!!!!!?????
fff : double;
ddd : int64;
s:string;
e:integer;
begin
e := 60;
ddd := 2;
fff := ddd shl e;
if fff > 2 then
begin
s := floattostr(fff);
edit1.Text:=s;
end;
end;因为f:=2 shl e;问题不是f 而于2,DELPHI 编译器认为2为integer,而integer是有符32整型