COBOL数字转字符方法,请教
①税率 5.000 (6,3)
↓变换后
税率 空格+空格+5.000(7A)
②税率 0.050 (6,3)
↓变换后
税率 空格+空格+0.050(7A)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
①税率 5.000 (6,3)
↓变换后
税率 空格+空格+5.000(7A)
②税率 0.050 (6,3)
↓变换后
税率 空格+空格+0.050(7A)
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
6,3得数字字段,移到6A里,前面会有0补位,不要0,而要空格
也就是
6,3的5.000转移到6A里→005000
想要的结果仅仅是
↓
5000
把左对齐的数字,MOVE到右对齐的字符串里。
我教你用一种非常有效的快捷方法:
我们都知道:
1)每一种计算机语言都有它自己的特长处理之处;
2)ile环境下,个语言是可以互相调用使用的;
rpgle对这类转换ibm已经做了大量的优化编程,都可以在rpgle中直接转换。我们可以用rpgle做个UDF,User Defined Function。UDF可以在任何一种ile语言中直接调用,即不用callx,像C语言中的function,直接调用使用。我的blog中,最近写了一篇《RPGIV编程问题百解(33)UDF使用和编程》,楼主可以参照一下,我在文章中编程举例,有位朋友说他的编程过程中,需要在sqlrpgle中用到日期字段数据,但是这个日期变量必须是YYMMDD格式的。我就建议他使用UDF。
参照我的UDF例子,在rpgle程序中直接使用IBM的转换类型的building function,就能够非常简单的编程为你的问题所需。
我的blog:passthru.cublog.cn
[ 本帖最后由 passthru 于 2009-10-27 08:05 编辑 ]
LZ,你能不能把要求写得再详细些?
我认为用COBOL中的组合字段赋值的办法就可以做到你想要的效果。
COBOL中设置字符串的变量可以再定义字符左右对整的,例如:
01 W-A-STRING.
10 W-SIGN-B PIC X(1).
10 W-A-VALUE PIC X(9) JUSTIFIED RIGHT.
用数组实现,感觉变麻烦了。
6666
[ 本帖最后由 pl421 于 2009-10-22 13:56 编辑 ]
前面的0还是去不了。
这个问题我遇到过。。。。想了半宿然后不断的试的结果很简单。
COBOL没有任何CONVERT语句,你把这个COP3型的MOVE到同样的一个S9型的变量里后再MOVE给X型的变量就可以了。
唉。。。。。浪费我好多时间,原来是解决问题的方法错了。
希望能帮上你!
求助:COBOL 数字型到文字型的转换 (22 October 2009)
http://topic.csdn.net/u/20070530 ... f-28420c89033c.html
01 WK-TIME8 PIC 9(0V9(02).
01 WK-NUM0 PIC ZZZZZZZZV99.
MOVE 3000.2 TO WK-TIME8.
MOVE WK-TIME8 TO WK-NUM0.
DISPLAY "WK-TIME8 : " WK-TIME8.
DISPLAY "WK-NUM0 : " WK-NUM0.
成功了别忘了给分我。