Wie eine Summe für die Schweizer Währung (Franken) in ABAP abzurunden
Frage
hier in der Schweiz ist unsere Währung Franken und die kleinste Münze ist 5 Rappen die 0,05 Franken. Was ist der beste Weg, um runde Beträge mit unserem Geld mit der Programmiersprache ABAP in SAP R / 3-System zu entrichten sein?
Beispiele:
" 4.48 should round to 4.50 " 2746.24 should round to 2746.25
Lösung 2
sieht es aus wie ein Standard-Modul:
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 steuert, ob es aufgerundet wird (+), nach unten (-). Oder kommerziellem (Raum)
Andere Tipps
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.
... wenn Sie wollen, dass es auf- oder abgerundet je nachdem, was ist der nächste Wert.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow