zahl runden oder abrunden

Getting started ... Alles für einen gelungenen Start.
9 Beiträge • Seite 1 von 1
9 Beiträge Seite 1 von 1

zahl runden oder abrunden

Beitrag von kostonstyle (Specialist / 247 / 0 / 0 ) »
hallo miteinander

ich habe eine frage zu zahlen aufrunden und abrunden.
wenn ich die zahl 259.93 habe möchte ich, dass es auf 259.95 aufgerundet wird,
aber wenn 259.92 auf 259.90 abgerundet wird.
gibt es ein befehl dafür oder funktion?

gruss kostonstyle

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
Hast du diese Frage nicht schonmal gestellt?
http://www.apentia-forum.de/viewtopic.php?t=9542&

Nehm den Wert mal 2, benutz dann den FuBa "Round"(mit Kaufmännisch Runden auf eine dec-stelle) und Teil das Ergebnis wieder durch 2.

Re: zahl runden oder abrunden

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
kostonstyle hat geschrieben:wenn ich die zahl 259.93 habe möchte ich, dass es auf 259.95 aufgerundet wird,
aber wenn 259.92 auf 259.90 abgerundet wird.
Wenn es wirklich um "Runden" ginge, gäbe es die, aber das was du willst, hat mit Runden nicht viel zu tun. Vorschlag: Unterprogramm schreiben, Betrag übergeben, letzte Stelle abfragen, entsprechend ändern, neuen Betrag zurückgeben.

Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von kostonstyle (Specialist / 247 / 0 / 0 ) »
so abapfriends

ich habe mal gecoded, und das Resultat wird richtig ausgespuckt.

Code: Alles auswählen.

DATA: zahl1 TYPE p DECIMALS 2 VALUE '706.50',
      zahl2 TYPE p DECIMALS 2,
      zahl3 TYPE p DECIMALS 2,
      zahl4 TYPE i,
      zahl5 TYPE p DECIMALS 2,
      result TYPE kwert.

*&---------------------------------------------------------------------*
*& Start Programmmain
*&---------------------------------------------------------------------*
START-OF-SELECTION.


  zahl2 = zahl1 * 10.
  COMPUTE zahl2 = FLOOR( zahl2 ).
  WRITE / zahl2.
  SKIP.
  SKIP.
  zahl3 = zahl1 * 10.
  zahl4 = ( zahl3 - zahl2 ) * 10.
  WRITE: zahl4.
  SKIP.
  SKIP.
  CASE zahl4.
    WHEN '0'.
      result = zahl1.
    WHEN '1'.
      result = zahl2 / 10.
    WHEN '2'.
      result = zahl2 / 10.
    WHEN '3'.
      zahl4 = 5 - zahl4.
      zahl5 = zahl4 / 100.
      result = zahl1 + zahl5.
    WHEN '4'.
      zahl4 = 5 - zahl4.
      zahl5 = zahl4 / 100.
      result = zahl1 + zahl5.
    WHEN '5'.
      result = zahl1.
    WHEN '6'.
      zahl4 = zahl4 - 5.
      zahl5 = zahl4 / 100.
      result = zahl1 - zahl5.
    WHEN '7'.
      zahl4 = zahl4 - 5.
      zahl5 = zahl4 / 100.
      result = zahl1 - zahl5.
    WHEN '8'.
      zahl4 = 10 - zahl4.
      zahl5 = zahl4 / 100.
      result = zahl1 + zahl5.
    WHEN '9'.
      zahl4 = 10 - zahl4.
      zahl5 = zahl4 / 100.
      result = zahl1 + zahl5.
  ENDCASE.

  WRITE: / result.


END-OF-SELECTION. 
gruss kostonstyle

Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
Quält euch halt ab und ignoriert meinen Vorschlag! (bzw auch den von blacK_adept)
Nehm den Wert mal 2, benutz dann den FuBa "Round"(mit Kaufmännisch Runden auf eine dec-stelle) und Teil das Ergebnis wieder durch 2.

Beitrag von kostonstyle (Specialist / 247 / 0 / 0 ) »
ich habe eben die funktion nicht gefunden. habe es gesucht und gesucht, ohne erfolg :(

Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
kostonstyle hat geschrieben:ich habe eben die funktion nicht gefunden. habe es gesucht und gesucht, ohne erfolg :(
????

Code: Alles auswählen.

temp_var = deine_zahl * 2 .
Call Function 'ROUND'
  exporting 
    decimals = 1
    input = temp_var
    sign = 'X'
  importing
    output = temp_var.
dein_ergebnis = temp_var / 2 .

Beitrag von black_adept (Top Expert / 4099 / 128 / 941 ) »
DeathGuardian hat geschrieben:Nehm den Wert mal 2, benutz dann den FuBa "Round"(mit Kaufmännisch Runden auf eine dec-stelle) und Teil das Ergebnis wieder durch 2.
Da die 2. Nachkommastelle gerundet werden soll und nicht die erste muss 20 als Faktor herhalten und nicht 2.

Code: Alles auswählen.

zahl = round( zahl * 20 ) / 20.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
black_adept hat geschrieben:
DeathGuardian hat geschrieben:Nehm den Wert mal 2, benutz dann den FuBa "Round"(mit Kaufmännisch Runden auf eine dec-stelle) und Teil das Ergebnis wieder durch 2.
Da die 2. Nachkommastelle gerundet werden soll und nicht die erste muss 20 als Faktor herhalten und nicht 2.

Code: Alles auswählen.

zahl = round( zahl * 20 ) / 20.
Bei meiner Lösung mit dem FuBa reicht die 2.
Zumindest haben meine Test geklappt.

Seite 1 von 1

Vergleichbare Themen

6
Antw.
5235
Views
Zahlen Abrunden
von SaskuAc » 18.06.2015 15:45 • Verfasst in ABAP® für Anfänger
1
Antw.
8818
Views
Runden auf Hunderter
von joesephe » 02.03.2009 23:13 • Verfasst in ABAP® für Anfänger
7
Antw.
1498
Views
Rechenoperation und Runden
von Florian9999 » 07.05.2019 10:12 • Verfasst in ABAP® für Anfänger
4
Antw.
2242
Views
Runden von Currency Feld
von cbroexkes1608 » 30.03.2017 12:46 • Verfasst in ABAP® für Anfänger
7
Antw.
10859
Views
Runden eines Betrags
von TakePotLuck » 07.10.2011 14:04 • Verfasst in ABAP® Core

Aktuelle Forenbeiträge

Regex in where
vor 22 Stunden von tar 8 / 368
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1636
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 285
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 529

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Regex in where
vor 22 Stunden von tar 8 / 368
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1636
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 285
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 529

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 2 Tagen von snooga87 1 / 221
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 3403
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9953