表达式中数字数据类型的强制。
当二进制操作中使用两种不同的数据类型时,如
+ (Addition)或
= (Assignment),较小的数据类型会被自动提升为较大的数据类型,无论给定参数的顺序如何。
促销如下:
- 其中两个参数都是byte,ubyte,short,ushort或integer中的一个:较小的参数被提升为与较大的参数相同的大小。
- 其中一个参数是longint或ulongint,另一个参数是任何整数类型,较小的参数被提升为与较大尺寸的参数相同的大小。
- 其中一个参数是单个或双重参数,两个参数都将转换和/或升级为双精度
所有无符号整数类型都处理像有符号整数类型,用于升级,最高有效位被扩展(符号扩展)。
数值数据类型转换
当表达式或变量被赋值,作为参数传递给过程或作为过程的结果返回时,类型转换将隐式发生。使用CAST或内置转换功能之一时,转换也可能是显式的。
整数到整数,签名和无符号的任何组合
- 任何整数类型到较小的整数类型:最低有效位被保留
- 任何整数类型到更大的整数类型:符号扩展以填充最高有效位
整数为单人或双人
双人到单人
- 可能的精度损失
- 如果Double的值超出单次结果的范围为+/- INF
双倍或单倍整数
- 可能的精度损失
- 如果浮点数超过目标类型的范围,则结果未定义。运行时错误不会提高。
参考