ここスイスでは、私たちの通貨はフランであり、最小のコインは5センタイム、つまり0.05フランです。SAP R / 3システムでプログラミング言語ABAPを使用して、私たちのお金で支払われる金額を丸める最良の方法は何ですか?
例:
"4.48は4.50に丸める必要があります "2746.24は2746.25に丸める必要があります
REPORT zwvtest.
PARAMETERS: p_in TYPE dec11_4,
p_out TYPE dec11_4.
DATA: l_fraction TYPE dec11_4,
l_upper TYPE dec11_4,
l_delta_upper TYPE dec11_4,
l_lower TYPE dec11_4,
l_delta_lower TYPE dec11_4.
AT SELECTION-SCREEN.
l_fraction = FRAC( p_in * 10 ) / 10.
l_upper = CEIL( l_fraction * 20 ) / 20.
l_delta_upper = l_upper - l_fraction.
l_lower = FLOOR( l_fraction * 20 ) / 20.
l_delta_lower = l_fraction - l_lower.
IF l_delta_lower < l_delta_upper.
p_out = p_in - l_delta_lower.
ELSE.
p_out = p_in + l_delta_upper.
ENDIF.
...最も近い値に応じて切り上げまたは切り下げが必要な場合。
標準モジュールがあるようです。
DATA: result TYPE dec11_4.
CALL FUNCTION 'FIMA_NUMERICAL_VALUE_ROUND'
EXPORTING
i_rtype = space
i_runit = '0.05'
i_value = '4.48'
IMPORTING
e_value_rnd = result.
i_rtypeは、切り上げ(+)、切り下げ(-)、または商用(スペース)のいずれであるかを制御します。