免费注册 查看新帖 |

Chinaunix

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

求教一个在RPGLE中四舍五入的问题. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-02 09:31 |只看该作者 |倒序浏览
最近遇到一个问题.比如 A=1234567 B有2位小数. B=A/1000000
得出结果 B=1.23 用 EVAL(H)也是 1.23 请问怎样可以使 B=1.24呢.


PS:如果除6遍10倒可以得1.24,不过这个办法太……。

论坛徽章:
0
2 [报告]
发表于 2005-03-02 12:49 |只看该作者

求教一个在RPGLE中四舍五入的问题.

1234567/1000000 本来就是等于 1.23  的啊。

用“四舍五入”法省略某一位后面的尾数,要看省略的最高位上的数,来决定“舍”还是“入”。如果省略的最高位上的数不满5(也就是4或3、2、1、0),就把尾数都舍去;如果省略的最高位上的数满5(也就是5或6、7、8、9),把尾数略去后,要向它的前一位进1。

论坛徽章:
0
3 [报告]
发表于 2005-03-03 11:17 |只看该作者

求教一个在RPGLE中四舍五入的问题.

你想要的实际上是进一法,不是四舍五入法。

没有找到这样的例子。

论坛徽章:
0
4 [报告]
发表于 2005-03-03 11:52 |只看该作者

求教一个在RPGLE中四舍五入的问题.

你可以用如果有余数就进1

论坛徽章:
0
5 [报告]
发表于 2005-03-03 12:17 |只看该作者

求教一个在RPGLE中四舍五入的问题.

可以用1234567/1.24,然后结果取整,再用这个数被1234567除。想法不是很成熟,如果是变量怎么办?

论坛徽章:
0
6 [报告]
发表于 2005-03-03 13:06 |只看该作者

求教一个在RPGLE中四舍五入的问题.

楼主的算法还不是有余数就进一位,应该是从最后一位开始一位一位做四舍五入的。

过程如下:
1.234567=〉1.23457=〉1.2346=〉1.235=〉1.24

不知道是什么计算需要这样的特殊处理?

论坛徽章:
0
7 [报告]
发表于 2005-03-03 14:15 |只看该作者

求教一个在RPGLE中四舍五入的问题.

我就是楼上兄弟所说的那样. 因为我们系统里出的报表和另外一张报表对不上,老是差1000元.由于金额是到万位,所以我以为是不是四舍五入方法不同的原因.现在还没找出原因.找到了告诉大家.

论坛徽章:
0
8 [报告]
发表于 2005-03-03 17:22 |只看该作者

求教一个在RPGLE中四舍五入的问题.

通常我都是把变量的小数位定义的比原来的长,比如2位小数,我定4位或者更长,等到算完了之后,才把它赋给报表中的2位长变量。这样就不会因为每次4舍5入,做个几百遍误差越来越大。

论坛徽章:
0
9 [报告]
发表于 2005-03-04 09:59 |只看该作者

求教一个在RPGLE中四舍五入的问题.

楼上的好办法.收到了

论坛徽章:
0
10 [报告]
发表于 2005-03-04 12:40 |只看该作者

求教一个在RPGLE中四舍五入的问题.

这是经典的做法!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP