如何在部分自由格式 RPG 中将 variable/fields 值转换为 IBM 签名数值
How to convert variable/fields value into IBM signed numeric values in Partially Free Format RPG
我正在尝试将变量值从分区十进制格式转换为字符,但在这样做时,我需要根据 IBM 标准转换它们的代码,在旧的 RPG 代码中,大多数开发人员使用了操作码 MOVEL 和 MLLZO,但是什么是部分自由格式RPG的替代命令。
*For example, the result of below code will be var2 = 1234N
D var1 s 10s 2 inz(-123.45)
D var2 s 10
/Free
C MOVEL var1 var2
dsply var2;
*Inlr = *on;
/End-free
MOVEL将数值移动到字符域时,字符域基本上得到的是数值的分区十进制值。
%EDITC 使用 X 编辑代码执行此操作。
var2 = %editc (var1 : 'X');
但是对于每种情况,如果您想将 -123.45 之类的数值转换为“1234N”之类的字符,最好考虑一下您的代码为何需要这种值。也许您需要查看如何使用 MOVEL 的结果。除了将 MOVEL 转换为自由格式之外,您可能希望将多个语句组合成一个过程,以实现包含 MOVEL 语句的代码的整个业务目标。
我正在尝试将变量值从分区十进制格式转换为字符,但在这样做时,我需要根据 IBM 标准转换它们的代码,在旧的 RPG 代码中,大多数开发人员使用了操作码 MOVEL 和 MLLZO,但是什么是部分自由格式RPG的替代命令。
*For example, the result of below code will be var2 = 1234N
D var1 s 10s 2 inz(-123.45)
D var2 s 10
/Free
C MOVEL var1 var2
dsply var2;
*Inlr = *on;
/End-free
MOVEL将数值移动到字符域时,字符域基本上得到的是数值的分区十进制值。
%EDITC 使用 X 编辑代码执行此操作。
var2 = %editc (var1 : 'X');
但是对于每种情况,如果您想将 -123.45 之类的数值转换为“1234N”之类的字符,最好考虑一下您的代码为何需要这种值。也许您需要查看如何使用 MOVEL 的结果。除了将 MOVEL 转换为自由格式之外,您可能希望将多个语句组合成一个过程,以实现包含 MOVEL 语句的代码的整个业务目标。