Необходимо округлить значение в долларах до следующего никеля

#ibm-midrange #rpgle #rpg

#ibm-средний уровень #rpgle #RPG

Вопрос:

Может кто-нибудь привести мне пример округления значения в долларах до следующего по величине никеля? Например: если моя сумма равна 21.402, мне нужно, чтобы она была 21.45, а не 21.40. В настоящее время оно округляется до БЛИЖАЙШЕГО никеля, что в данном случае дало бы мне 21,40. Мне нужно округлить до .45.

Редактировать код:

  C                   Eval      Work=0
 C                   Eval      RMD=0
 C     Price         DIV       .05           Work
 C                   MVR                     RMD
 C                   If        RMD > 0
 C                   Eval      Price = (Work * .05)   .05
 C                   EndIf
  

Комментарии:

1. Пожалуйста, отредактируйте свой вопрос и добавьте код, который вы пробовали.

2. C Eval Work = 0 C Eval RMD = 0 C Цена DIV .05 Work C MVR RMD C, если RMD> 0 C Eval Price = (Work * .05) .05 C EndIf

Ответ №1:

Ответ заключается в (неуказанных) определениях WORK поля. MVR вернет остаток — количество никелей, оставшихся после деления. Если есть дробный результат деления, остатка не будет. Если поля определены:

  d work            s              9p 2
 d rmd             s             15p 6
 d price           s              7p 3 inz(21.402)
  

затем

  C     Price         DIV       .05           Work
  

вводит 428,04 WORK , и остатка нет — полный результат сохраняется в WORK . Если поля определены:

  d work            s              9p 0
 d rmd             s             15p 6
 d price           s              7p 3 inz(21.402)      
  

затем

  C     Price         DIV       .05           Work
  

вставляет 428 WORK и остается остаток .002

Комментарии:

1. Спасибо! Все было в том, как я определил остаток. Очень признателен!!