数据类型转换是将一个值从一种数据类型更改为另一种数据类型的过程。例如,可以将文本型数据“457”转换为一个整数型数据,或将任意类型的数据转换为文本型。
数据类型转换有两种方式,即隐式转换与显式转换。
如果从低精度数据类型向高精度数据类型转换,则永远不会溢出,并且总是成功的;而从高精度数据类型向低精度数据类型转换则必然会有信息丢失,甚至有可能失败。这种转换规则就如下图所示的两个场景,高精度数据类型相当于一个大水杯,低精度数据类型相当于一个小水杯,大水杯可以轻松装下小水杯中所有的水,但小水杯无法装下大水杯中所有的水,装不下的部分必然会溢出。
从低级类型向高级类型的转换,系统将自动执行,程序员无须进行任何操作,这种类型的转换被称为隐式转换,也可以称其为自动转换。
下列基本数据类型会涉及数据转换(不包括逻辑类型),这些类型按精度从“低”到“高”排列的顺序为:字符<整数<长整数<小数,其中字符类型比较特殊,它可以与部分整数数据兼容,且不会发生精度变化。
案例:整数类型对象转换为小数类型
当把高精度变量的值赋给低精度变量时,必须使用显式转换(又称强制类型转换)。当执行显式转换时可能会导致精度缺失。语法如下:
案例:以服务器项目为例,将小数类型对象强制转换为整数类型的代码及调试结果如下:
显式转换的适用范围:
"空对象"可以强制转换到任何非常量类的类数据类型或文本型;
数值数据类型之间可以强行转换;
常量类可以强制转换到其所对应的基本数据类型,非立即数基本数据类型数据可以强制转换到对应的常量类;