勇哥 发表于 2012-12-29 13:05:53

变量类型转换中出现的问题

procedure TForm1.Button1Click(Sender: TObject);
var
X,Y,Z : integer ;
begin
   
   Edit1.Text:=IntToStr(x);
   Edit2.Text:=IntToStr(y);
   z:=x+y;
   Edit3.Text:=IntToStr(z);
end;

为什么答案x+y=z的答案是4359016+1242940=5601956呢?
除了这样些 edit3.Text:= FloatToStr(StrToInt(Edit1.text)+strtoint(Edit2.text));
用变量来实现,用什么方法表示?

勇哥 发表于 2012-12-29 18:29:49

怎么没有人理我,我的问题有哪里不对吗?再问设置变量实现和数据类型转换实现有什么不同?哪个效率高??????

勇哥 发表于 2012-12-29 21:33:33

版主帮想想办法

z____ 发表于 2012-12-30 17:22:32

勇哥 发表于 2012-12-29 18:29 static/image/common/back.gif
怎么没有人理我,我的问题有哪里不对吗?再问设置变量实现和数据类型转换实现有什么不同?哪个效率高??? ...

难道4359016+1242940不等于5601956,你的问题让人很糊涂啊.你到底想问什么?

勇哥 发表于 2012-12-30 17:42:32

z____ 发表于 2012-12-30 17:22 static/image/common/back.gif
难道4359016+1242940不等于5601956,你的问题让人很糊涂啊.你到底想问什么?

首先谢谢你关心这个问题。我的意思是把下面的代码编译运行时,不管在edit1和edit2里面输入任何数字,他们相加后,edit3里面的答案都是一样的,一运行就变成4359016+1242940=5601956了,输入什么数字计算结果都是4359016+1242940=5601956我知道这是在数据类型转换时出的问题,希望能有人帮我解答一下,我的本意是想用变量代替edit控件里的数子,看看2种数据类型转换的差别,想看看2种方法的效率一不一样。虽然用edit3.Text:= FloatToStr(StrToInt(Edit1.text)+strtoint(Edit2.text));这个方法很简单,但是我想试试有几种方法可以实现操作。
procedure TForm1.Button1Click(Sender: TObject);
var
X,Y,Z : integer ;
begin
   Edit1.Text:=IntToStr(x);
   Edit2.Text:=IntToStr(y);
   z:=inttostr+y;
   Edit3.Text:=IntToStr(z);
end;

醉卧_红尘 发表于 2012-12-30 17:53:09

汗,你完全弄反了
x := strtoint(edit1.text)
y := strtoint(edit2.text)
z := x+y;
edit3.text := inttostr(z)

醉卧_红尘 发表于 2012-12-30 17:56:26

我们在申请变量的时候,系统会自动为变量在内存中划出一个空间来存放变量,如果你没有给变量初始化,譬如
x := 0或者x:= strtoint(edit1.text)
那么直接调用变量那么返回的变量的值,也就是占用的空间的内容是不可知的,

勇哥 发表于 2012-12-30 17:59:08

醉卧_红尘 发表于 2012-12-30 17:53 static/image/common/back.gif
汗,你完全弄反了
x := strtoint(edit1.text)
y := strtoint(edit2.text)


非常感谢你,对这个我也试过但是编译时y := strtoint(edit2.text)
z := x+y;报错,是不是变量z还要转换一下呢?

勇哥 发表于 2012-12-30 18:01:22

勇哥 发表于 2012-12-30 17:59 static/image/common/back.gif
非常感谢你,对这个我也试过但是编译时y := strtoint(edit2.text)
z := x+y;报错,是不是变量z还要转换一 ...

对了我刚才忘了加分号

醉卧_红尘 发表于 2012-12-30 18:47:18

;P..........

郑小夕 发表于 2012-12-30 20:33:35

嗯,你弄反了,小问题

勇哥 发表于 2012-12-31 04:23:09

醉卧_红尘 发表于 2012-12-30 17:56 static/image/common/back.gif
我们在申请变量的时候,系统会自动为变量在内存中划出一个空间来存放变量,如果你没有给变量初始化,譬如
x : ...

原来如此,我就一直搞不懂
页: [1]
查看完整版本: 变量类型转换中出现的问题