gpt4 book ai didi

percentage - 如何在 RPGLE 中声明小数位固定或自由格式?

转载 作者:行者123 更新时间:2023-12-03 08:06:49 26 4
gpt4 key购买 nike

我对RPGLE了解不多。我正在尝试解决给我的这个小练习。我从来没有做过或见过使用小数的练习。我想获得 7 个值的百分比。所以,我想做如下计算。

例如在 RPGLE 中。

DTotal            S              3P 0       
DPercnt S 2P 2
/Free
Total = 589;
Percnt = (Total/700)100;
Dsply Percnt;
*Inlr = *On;
/End-Free

预期输出为 84.142857143 或将小数位四舍五入为两位 (84.14) 或四位 (84.1430) 位。

  1. 我应该为TotalPercent 变量使用哪种数据类型?
  2. 如何声明 Percent 变量(打包或分区)来保存两位、四位或 N 位小数?
  3. 有人可以请用“RPG IV”或固定格式输入声明部分和计算部分吗?

我遇到的错误和我进行的更正:

  1. 表达式应该结束。(在 SEU 中)

    对于上述错误,我添加了*并解决了Percnt = (Total/700) * 100;

  2. 下面是第二个错误。

    The target for a numeric operation is too small to hold the result (C G D F)

    对于上述错误,我将 Percnt 变量长度增加到 4P 2

  3. 但是这次答案是错误的,DSPLY 8414。没有达到预期。

    因此,我按照下面的建议使用了EvalEval(H) 百分比 =(总计/700)* 100;

  4. 仍然是相同的输出:DSPLY 8414

    谢谢@Barbara。我很晚才注意到这个提示DSPLY (%CHAR(Percnt)) 给了我所需的输出 84.14

最佳答案

RPG 数值变量由总位数和小数位数定义。因此,如果您想要两个整数位和两个小数位 (12.34),请将变量定义为自由形式的 Packed(4:2) 或固定形式的 4P 2。

如果您想要舍入,请为操作码编码 (H) 扩展器(“H”代表“半调整”)。赋值操作码是 EVAL 操作码,通常被省略。但如果您想添加扩展程序,则必须对其进行编码。

DTotal            S              3P 0       
DPercnt S 4P 2
Total = 589;
Eval(H) Percnt = (Total/700) * 100;
DSPLY (%CHAR(Percnt));
*Inlr = *On;

除非您使用的是 7.1 之前的版本,否则您无需再编写/FREE 和/END-FREE 代码。

关于percentage - 如何在 RPGLE 中声明小数位固定或自由格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72071541/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com