Integer-Wert konvertieren

atp_member

Level-2
Beiträge
10
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
entweder stehe ich auf der Leitung oder es ist wirklich nicht so einfach, wie es aussieht.

Wie kann ich aus einem INT-Wert, z.B. 2014 die letzen beiden Stellen herausbekommen, hier dann also 14?

Auf eine Lösung mit Stringkonviertierung bin ich gekommen, aber geht es auch anders?

Schöne Grüße
 
Hallo atp_member,

Int in Real umwandeln, geteilt durch 100, dann Frac davon und wieder mal 100, und schon hast du den Teil den du willst.

Also in ST:

Integer_neu := LREAL_TO_INT(FRAC((INT_TO_LREAL(Integer_alt)/100)*100);

Müßte glaube ich so direkt gehen.

Gruß :p
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So z.B.

Code:
VAR
  i,i2,i3 :INT;
END_VAR

(*i ist dein Startwert*)
i2 := i / 100;  (*Die letzten beiden Stellen abschneiden*)
i3 := i - i2 * 100; (*i3 hat jetzt die letzten beiden Stellen von i - Vorzeichen bleibt erhalten*)

(*ODER  i3 kann man sich eigentlich sparen .....*)
i2 := i / 100; 
i2 := i - i2 * 100;
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

danke für eure Lösungsvorschläge.

@Harald, das ist die Lösung, ich ich mir vorgestellt hatte.
An den Modulo-Operator hatte ich auch schon kurz gedacht, aber dann wieder verworfen:sad:
Gut, dass es euch gibt.

Gruß
 
Zurück
Oben