数据格式转换

当程序中的代码涉及具有不同数据格式的项的交互时,编译器会临时转换这些项以进行比较和算术运算,或者永久转换 以分配给 MOVECOMPUTE或其他算术语句中的接收方。

转换实际上是将一个值从一个数据项移动到另一个数据项。 编译器通过使用用于 MOVECOMPUTE 语句的相同规则来执行算术或比较执行期间所需的任何转换。

如果可能,编译器将执行移动以保留数字值,而不是直接数字对数字移动。

转换通常需要额外的存储和处理时间,因为数据将移至内部工作区并在执行操作之前进行转换。 可能还需要将结果移回工作区并重新转换。

如果目标字段可以包含源操作数的所有数字,那么定点数据格式 (外部十进制,压缩十进制或二进制) 之间的转换不会丢失精度。

在定点数据格式和浮点数据格式 (短浮点,长浮点或外部浮点) 之间的转换中,可能会丢失精度。 这些转换在同时具有定点和浮点操作数的算术求值期间发生。