变量类型转换中出现的问题
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 static/image/common/back.gif
怎么没有人理我,我的问题有哪里不对吗?再问设置变量实现和数据类型转换实现有什么不同?哪个效率高??? ...
难道4359016+1242940不等于5601956,你的问题让人很糊涂啊.你到底想问什么? 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;
汗,你完全弄反了
x := strtoint(edit1.text)
y := strtoint(edit2.text)
z := x+y;
edit3.text := inttostr(z) 我们在申请变量的时候,系统会自动为变量在内存中划出一个空间来存放变量,如果你没有给变量初始化,譬如
x := 0或者x:= strtoint(edit1.text)
那么直接调用变量那么返回的变量的值,也就是占用的空间的内容是不可知的,
醉卧_红尘 发表于 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 17:59 static/image/common/back.gif
非常感谢你,对这个我也试过但是编译时y := strtoint(edit2.text)
z := x+y;报错,是不是变量z还要转换一 ...
对了我刚才忘了加分号 ;P.......... 嗯,你弄反了,小问题 醉卧_红尘 发表于 2012-12-30 17:56 static/image/common/back.gif
我们在申请变量的时候,系统会自动为变量在内存中划出一个空间来存放变量,如果你没有给变量初始化,譬如
x : ...
原来如此,我就一直搞不懂
页:
[1]