Nachkommastellen ab der dritten abschneiden.

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

Nachkommastellen ab der dritten abschneiden.

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Moin.

Ich habe einen Wert mit drei Nachkommastellen und möchte die Nachkommastellen ab der dritten pauschal abschneiden. Dabei soll NICHT kaufmännisch gerundet werden.

Weiteres Problem: Wie erkenne ich ob die dritte Nachkommastelle eine '5' ist?

Im Codebeispiel (ohne Lösungsversuch) soll aus dem Wert 54,145 der Wert 54,14 werden:

data: lv_netto type p decimals 3.
data: lv_brutto_calc type p decimals 3.
lv_netto = '45.50'.
lv_brutto_calc = lv_netto + lv_netto * '0.19'.
* Ergebnis:
45,500
54,145


Wie komme ich da ran? Meine Versuche führten alle zum kaufmännischen Runden auf 54,15.

Ciao
Burkhart

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


Re: Nachkommastellen ab der dritten abschneiden.

Beitrag von masterhash (ForumUser / 22 / 6 / 0 ) »
Hallo Burkhart,

ich würde die Zahl in einen String konvertieren und dann die Position des Kommas+2 bestimmen und den Teil übernehmen. Klingt stümperhaft und getestet habe ich es jetzt gerade auch nicht. Aber es ist nicht dumm, wenn es funktioniert ;)

VG

Edit: doch kurz was zusammengebaut... geht vielleicht eleganter

Code: Alles auswählen.

DATA zahl TYPE i_zahl VALUE '45.156789'.
DATA offset TYPE integer.

DATA(string_zahl) = CONV string( zahl ).
FIND '.' IN string_zahl MATCH OFFSET DATA(off).
offset = off + 3.

string_zahl = string_zahl+0(offset).
zahl = CONV i_zahl( string_zahl ).

WRITE zahl.

Re: Nachkommastellen ab der dritten abschneiden.

Beitrag von black_adept (Top Expert / 4103 / 128 / 945 ) »

Code: Alles auswählen.

trunc( x * 100 ) / 100
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Nachkommastellen ab der dritten abschneiden.

Beitrag von masterhash (ForumUser / 22 / 6 / 0 ) »
Okay, DAS ist elegant :)

Wenn er jetzt die dritte Nachkommastelle auf '5' überprüfen möchte, wäre er aber wieder bei strings?

Re: Nachkommastellen ab der dritten abschneiden.

Beitrag von a-dead-trousers (Top Expert / 4414 / 224 / 1186 ) »
Nicht zwangsläufig: MOD to the rescue.

Code: Alles auswählen.

IF ( ( x * 1000 ) MOD 100 ) EQ 5 ).

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
masterhash

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Nachkommastellen ab der dritten abschneiden.

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Vielen Dank für die Tips. Nun läuft's auch.
;-)

Seite 1 von 1

Vergleichbare Themen

1
Antw.
3716
Views
character abschneiden...?
von b0rsti » 08.02.2008 11:20 • Verfasst in ABAP® für Anfänger
4
Antw.
20693
Views
Abschneiden einer Zeichenkette
von Katta » 09.08.2007 11:23 • Verfasst in ABAP® für Anfänger
11
Antw.
8529
Views
Dezimalstellen in SAPSCRIPT abschneiden
von strobbel » 22.08.2008 10:37 • Verfasst in ABAP® für Anfänger
3
Antw.
3103
Views
Zeichenkette nach 2. Leerzeichen abschneiden
von BubbleSort » 03.08.2016 10:23 • Verfasst in ABAP® für Anfänger
5
Antw.
6424
Views
String Abschneiden von Rechts nach Links
von autohandel7 » 09.11.2017 10:02 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Nach MESSAGE TYPE E Felder entsperren
vor einer Woche von rob_abc gelöst 8 / 8781
ABAP - Mail so10 Text
vor einer Woche von retsch 6 / 2660

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

Nach MESSAGE TYPE E Felder entsperren
vor einer Woche von rob_abc gelöst 8 / 8781
ABAP - Mail so10 Text
vor einer Woche von retsch 6 / 2660

Unbeantwortete Forenbeiträge

SD_PRINT_TERMS_OF_PAYMENT
vor 2 Wochen von Manfred K. 1 / 3061
BUSOBJEKT zu CMIS PHIO ermitteln
vor 5 Wochen von snooga87 1 / 4874
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 5912