Zifferntrennung oder Nachkommastellen abschneiden

Paddi299

Level-1
Beiträge
21
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte eine REAL in INT umwandeln und nach Ziffern trennen, dabei aber auch richtig runden.
So z.B. habe ich mir das vorgestellt. REAL 78,6 -> INT_1 = 7, INT_2 = 9

LREAL TO INT (78,6) = 79
INT_1 := Funktion_zum_nachkommastellen_abschneiden(79 / 10) * 10 --> 70
INT_2 := (79 - INT_1) --> 9

Kenne leider kenen Befehl zum Nachkommastellen abschneiden.
Gibt es vllt sogar eine fertige Funktion für das Vorhaben? Könnte mir vorstellen, dass man das öfter braucht.

Danke für eure Hilfe!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke sehr, werde mir mal anschauen, ob ich es damit hinbekomme. Den Ausgabewerte wollte ich für eine CASE Fallunterscheidung verwenden.
Da müsste dann wahrscheinlich noch eine STRING_TO_INT Umwandlung vorkommen, könnte ich mir vorstellen.

Ich habe mir inzwischen mit vielen, vielen Zwischenschritten geholfen. Sicher nicht schön programmiert, aber es hat geklappt :LOL:
BNT_A := REAL_TO_INT(Speicher_Pufferspeicher_Kaltwasser_195_Zustand_Temp_mitte);
BNT_B := (INT_TO_REAL(BNT_A) / 10);
BNT_C := TRUNC(BNT_B);
BNT_D := REAL_TO_INT(BNT_C);
BNT_1 := BNT_D;
BNT_2 := REAL_TO_INT(Speicher_Pufferspeicher_Kaltwasser_195_Zustand_Temp_mitte) - BNT_1 * 10;
 
ich möchte eine REAL in INT umwandeln und nach Ziffern trennen, dabei aber auch richtig runden.
Mit "richtig runden" meinst Du vermutlich einmalig, vor dem "Abschneiden" der NachkommaStellen?
Das sollte REAL_TO_DINT schon von sich aus tun. Und wenn doch nicht, dann nachhelfen mit - Achtung, PseudoCode -
DintZahl = RealZahl + 0.5 * Vorzeichen(RealZahl).
Dann die einzelnen Stellen der DintZahl isolieren (ohne weiterhin zu runden - nach welchen GesichtsPunkten auch?) mit z.B.
DintZahl2 = (DintZahl1 / 100) MOD 10 // um die HunderterStelle zu isolieren.
Die Division durch 100 schiebt die Einer- und die ZehnerStelle ins Nirvana und MOD 10 sorgt dafür, dass höherwertige Stellen als die nun rechtsbündig stehende, ehemalige HunderterStelle gelöscht werden.
 
Zurück
Oben