Wurde doch schon geschrieben: FLOAT und ROUND.schusterd hat geschrieben:was wäre denn der richtige Weg?
Echt? Was wäre denn dann die Ausgabe von folgendem Programm - mit Begründung? ( Bitte im Kopf simulieren bevor das im Programm einfach ausprobiert wird )a-dead-trousers hat geschrieben:Normale Zuweisungen schneidet ABAP intern immer ab. Siehe dazu die Hilfe zum Zuweisungsoperator (=).
Code: Alles auswählen.
REPORT.
*TYPES: my_type TYPE p DECIMALS 2.
TYPES: my_type TYPE i.
DATA: x TYPE my_type, y TYPE my_type, z TYPE my_type, result TYPE my_type.
x = 20.
y = 3.
z = 20.
result = ( x / y ) * z.
WRITE:/ result.
Code: Alles auswählen.
my_type type p decimals 2.
Die Basis wird vor der Berechnung festgelegt - aber das von dir erwähnte "Abschneiden" (auch in Zwischenschritten) stimmt gerade nicht sondern es wird gerundet.a-dead-trousers hat geschrieben:Bin mir jetzt nicht ganz sicher, ab wann ABAP die "Basis" für die Berechnung festlegt: Schon von Anfang an (alles integer) oder erst am Ende (Zwischenschritte in Float).