随笔 - 33  文章 - 0  评论 - 0  阅读 - 6426

实例16 数据类型之间的转换

可以说编程序就是与数据类型打交道,能进行各种数据类型之间的转换是程序编写的基本功,基本功扎实了,程序运行后出现的问题就比较少,否则漏洞百出。当出现问题时,自己也找不到什么原因。

看看下面的代码:

var

  aa:double;

  bb:Integer;

begin

  aa:=1245.4;

  bb:=aa;

end;

这是一种数据类型转换,从定义上看,aa是双精度型,bb是整数型,这种赋值方法是不可以的。反之,将整数值赋给双精度型则是可以的,比如:

var

  aa:double;

  bb:Integer;

begin

  bb:=123;

  aa:=bb;

end;

还有一些类型转换,需要用类型符强制转换,比如:

var

  cc:char;

  nn:Integer;

begin

  nn:=$1234;

  cc:=Char(nn);

end;

注意这种转换,由于两种类型的字节数不一致,可能会造成丢失部分数据。

还有一些转换,需要用一个中间函数进行,比如:

var

  aa:double;

  bb:Integer;

  ass:string;

  ss:Pchar;

begin

  aa:=1245.44;

  bb:=Trunc(aa);  //浮点数取整

  ass:=strPas(ss);  //Pchar转换为string

end;

Pascal还有说明符as,它可以进行类型的强制转换,比如:

with Sender as TButton do

begin

  Caption:='确定';

  OnClick:=okClick;

end;

数据类型的转换很多,这里只举了几个常用的简单例子,目的在于提醒读者,不要小看数据类型转换。当程序出现错误时,也要从数据类型的转换角度去检查,因为它可能是造成错误的重要原因之一。

posted on   Delphi搬运工  阅读(90)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示