#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. Спасибо! Все было в том, как я определил остаток. Очень признателен!!