REXX中的递增数字

问题描述

我有一个SUBSTR的要求(例如st_detail =“%BOM0007992739871P”,st_digit = SUBSTR(st_detail,8,10))。我必须对st_digit进行一些验证,如果有效,请将“%BOM0002562186P”更改为“%BOM0002562186C”。到目前为止,我的代码工作正常。但是我被要求增加st_digit(我使用st_digit = st_digit + 1)并打印100个有效的st_digits并附加C。因此我将代码放入循环并显示st_detail。但是,当我运行它时,第一次递增后得到了“%BOM0007.99273987E + 9C”。请帮助如何显示“%BOM0007992739872C”? (注意:这只是参考,我无法在此处显示验证逻辑,我的代码也可以正常工作。我添加的额外代码是我在此处使用的代码

common_id

解决方法

似乎NUMERIC设置为“ 9 0 SCIENTIFIC”。我将其更改为NUMERIC DIGITS 12,所以现在可以使用了。

parse numeric my_numeric_settings
say my_numeric_settings   /* 9 0 SCIENTIFIC */
NUMERIC DIGITS 16
parse numeric my_numeric_settings
say my_numeric_settings  /* 16 0 SCIENTIFIC */

这是因为我使用了 SUBSTR(st_detail,8,10),所以st_digit的长度为10,大于“ 9 0 SCIENTIFIC”的默认设置,因此将其更改为“ NUMERIC DIGITS 10” “ NUMERIC DIGITS 12” 即可。