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 / 4106 / 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 / 4415 / 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.
3720
Views
character abschneiden...?
von b0rsti » 08.02.2008 11:20 • Verfasst in ABAP® für Anfänger
4
Antw.
20715
Views
Abschneiden einer Zeichenkette
von Katta » 09.08.2007 11:23 • Verfasst in ABAP® für Anfänger
11
Antw.
8538
Views
Dezimalstellen in SAPSCRIPT abschneiden
von strobbel » 22.08.2008 10:37 • Verfasst in ABAP® für Anfänger
3
Antw.
3109
Views
Zeichenkette nach 2. Leerzeichen abschneiden
von BubbleSort » 03.08.2016 10:23 • Verfasst in ABAP® für Anfänger
5
Antw.
6439
Views
String Abschneiden von Rechts nach Links
von autohandel7 » 09.11.2017 10:02 • Verfasst in ABAP® für Anfänger

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.