鱼C论坛

 找回密码
 立即注册
查看: 3298|回复: 11

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

[复制链接]
发表于 2012-12-29 13:05:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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));
用变量来实现,用什么方法表示?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-12-29 18:29:49 | 显示全部楼层
怎么没有人理我,我的问题有哪里不对吗?再问设置变量实现和数据类型转换实现有什么不同?哪个效率高??????
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-12-29 21:33:33 | 显示全部楼层
版主帮想想办法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-12-30 17:22:32 | 显示全部楼层

难道4359016+1242940不等于5601956,你的问题让人很糊涂啊.你到底想问什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-12-30 17:42:32 | 显示全部楼层
z____ 发表于 2012-12-30 17:22
难道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;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-12-30 17:53:09 | 显示全部楼层
汗,你完全弄反了
x := strtoint(edit1.text)
y := strtoint(edit2.text)
z := x+y;
edit3.text := inttostr(z)

评分

参与人数 1鱼币 +3 收起 理由
勇哥 + 3 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-12-30 17:56:26 | 显示全部楼层
我们在申请变量的时候,系统会自动为变量在内存中划出一个空间来存放变量,如果你没有给变量初始化,譬如
x := 0或者x:= strtoint(edit1.text)
那么直接调用变量那么返回的变量的值,也就是占用的空间的内容是不可知的,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-12-30 17:59:08 | 显示全部楼层
醉卧_红尘 发表于 2012-12-30 17:53
汗,你完全弄反了
x := strtoint(edit1.text)
y := strtoint(edit2.text)

非常感谢你,对这个我也试过但是编译时y := strtoint(edit2.text)
z := x+y;报错,是不是变量z还要转换一下呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-12-30 18:01:22 | 显示全部楼层
勇哥 发表于 2012-12-30 17:59
非常感谢你,对这个我也试过但是编译时y := strtoint(edit2.text)
z := x+y;报错,是不是变量z还要转换一 ...

对了我刚才忘了加分号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-12-30 18:47:18 | 显示全部楼层
;P..........
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-12-30 20:33:35 | 显示全部楼层
嗯,你弄反了,小问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-12-31 04:23:09 | 显示全部楼层
醉卧_红尘 发表于 2012-12-30 17:56
我们在申请变量的时候,系统会自动为变量在内存中划出一个空间来存放变量,如果你没有给变量初始化,譬如
x : ...

原来如此,我就一直搞不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 23:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表