mrs*_*ted 2 rpgle ibm-midrange
我正在尝试将变量值从分区十进制格式转换为字符,但这样做时,我需要根据 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
Run Code Online (Sandbox Code Playgroud)
当 MOVEL 将数值移动到字符字段时,字符字段基本上是获取数值的分区十进制值。
带有 X 编辑代码的 %EDITC 执行此操作。
var2 = %editc (var1: 'X');
但是对于您想要将 -123.45 之类的数值转换为 '1234N' 之类的字符的每种情况,最好考虑一下您的代码为什么需要这种值。也许您需要查看 MOVEL 的结果是如何使用的。除了将 MOVEL 转换为自由格式之外,您可能希望将多个语句组合成一个过程,以完成包含 MOVEL 语句的代码的整个业务目标。