如何在 Java 中模拟 RPG Z-ADD 或其他会溢出的作业的行为?

How to emulate in Java the behavior of RPG Z-ADD or other assignment that would be an overflow?

我必须在 Java 中模仿角色扮演游戏的行为。在RPG中,有2个分区小数域 FLDA 长度为 2,小数位数为 0 FLDB 的长度为 5,带 1 位小数 FLDA 值 = 0 FLDB 值 = 1234.5

RPG代码行

 C                     Z-ADDFLDB      FLDA     

FLDA 值将是 34。默认情况下 RPG 不会抛出溢出异常,它会截断以适合。

如何使用 Java BigDecimal 执行此操作?

旧版本的 RPG 有这个设计缺陷...RPG IV 在使用 EVAL 操作码或 TRUNCNBR(*NO) 编译器选项时纠正了它。

您将需要编写 Java 等同于 RPG 的 ADDSUBZ-ADDZ-SUB 操作码。 MOVE 将是另一个有问题的操作码。