1

ここスイスでは、私たちの通貨はフランであり、最小のコインは5センタイム、つまり0.05フランです。SAP R / 3システムでプログラミング言語ABAPを使用して、私たちのお金で支払われる金額を丸める最良の方法は何ですか?

例:

"4.48は4.50に丸める必要があります
"2746.24は2746.25に丸める必要があります
4

2 に答える 2

1
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.

...最も近い値に応じて切り上げまたは切り下げが必要な場合。

于 2010-01-22T09:30:45.303 に答える
1

標準モジュールがあるようです。

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は、切り上げ(+)、切り下げ(-)、または商用(スペース)のいずれであるかを制御します。

于 2011-03-09T13:19:37.527 に答える