免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 13168 | 回复: 12
打印 上一主题 下一主题

COBOL数字转字符方法,请教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-22 12:20 |只看该作者 |倒序浏览
20可用积分
①税率 5.000 (6,3)
↓变换后
税率 空格+空格+5.000(7A)

②税率 0.050 (6,3)
↓变换后
税率 空格+空格+0.050(7A)

最佳答案

查看完整内容

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. 成功了别忘了给分我。

论坛徽章:
0
2 [报告]
发表于 2009-10-22 12:20 |只看该作者
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.

成功了别忘了给分我。

论坛徽章:
0
3 [报告]
发表于 2009-10-22 13:27 |只看该作者

回复 #1 pl421 的帖子

这个问题我遇到过。。。。想了半宿然后不断的试的结果很简单。
COBOL没有任何CONVERT语句,你把这个COP3型的MOVE到同样的一个S9型的变量里后再MOVE给X型的变量就可以了。
唉。。。。。浪费我好多时间,原来是解决问题的方法错了。
希望能帮上你!
求助:COBOL 数字型到文字型的转换 (22 October 2009)
http://topic.csdn.net/u/20070530 ... f-28420c89033c.html

论坛徽章:
0
4 [报告]
发表于 2009-10-22 13:48 |只看该作者
原帖由 ziggler 于 2009-10-22 13:27 发表
这个问题我遇到过。。。。想了半宿然后不断的试的结果很简单。
COBOL没有任何CONVERT语句,你把这个COP3型的MOVE到同样的一个S9型的变量里后再MOVE给X型的变量就可以了。
唉。。。。。浪费我好多时间,原来是 ...

前面的0还是去不了。

论坛徽章:
0
5 [报告]
发表于 2009-10-22 13:52 |只看该作者
6666

[ 本帖最后由 pl421 于 2009-10-22 13:56 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2009-10-23 15:08 |只看该作者
用数组实现,感觉变麻烦了。

论坛徽章:
0
7 [报告]
发表于 2009-10-26 22:59 |只看该作者
LZ,你能不能把要求写得再详细些?

我认为用COBOL中的组合字段赋值的办法就可以做到你想要的效果。

COBOL中设置字符串的变量可以再定义字符左右对整的,例如:
                     
01  W-A-STRING.   
   10 W-SIGN-B PIC X(1).                          
   10 W-A-VALUE PIC X(9) JUSTIFIED  RIGHT.

论坛徽章:
0
8 [报告]
发表于 2009-10-27 08:00 |只看该作者
我教你用一种非常有效的快捷方法:

我们都知道:
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 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2009-10-27 09:13 |只看该作者
把左对齐的数字,MOVE到右对齐的字符串里。

论坛徽章:
0
10 [报告]
发表于 2009-10-28 08:21 |只看该作者
6,3得数字字段,移到6A里,前面会有0补位,不要0,而要空格
也就是
6,3的5.000转移到6A里→005000

想要的结果仅仅是

5000
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP