Inhaltsverzeichnis
Abs()-Funktion
Einleitung
Die Abs()-Funktion ist eine Standardfunktion mit einem ganzen Portfolio an Einsatzmöglichkeiten. Sie liefert den absoluten Zahlenwert einer positiven oder negativen Zahl. Negative Zahlen werden in positive Werte umgewandelt.
Syntax
Befehl | Abs(v:Variant) |
---|---|
Funktion | Wandelt etwas, das wie eine positive oder negative Zahl aussieht um in einen Wert vom Typ Float/Extended |
Rückgabewert | Extended |
Codebeispiel
Das folgende Beispiel wandelt negative Zahlen in positive Werte um. Außerdem demonstriert es die Fähigkeit, eine Zeichenfolge in eine Fließkommazahl zu überführen, die zudem noch mit einem Komma als Dezimaltrennzeichen vorgegeben ist. Ändert man z.B. den Punkt der Kommazahl in ein Komma, liefert der Compiler eine Fehlermeldung.
Das passiert auch, wenn man die Variable zeichenfolge
als String vorgibt. Die Umwandlung klappt nur mit dem Datentyp Variant.
Außerdem begegnet uns hier die Chr()-Funktion. Diese kann einen Zahlenwert in den zugehörigen Buchstaben aus einer Zeichentabelle einfügen. Sie erlaubt es allerdings auch, Steuerzeichen aus dem ASCII-/ANSI-Zeichensatz zu verwenden. Die Abfolge Chr(13) + Chr(10)
entspricht z.B. einer CRLF-Zeilenschaltung (CR = Carriage Return) und einer neuen Zeile (LF = Line Feed). Dadurch wird die mehrzeilige Meldung möglich.
var absGanzzahl : Extended; absKommazahl : Extended; absZeichenfolge : Extended; zeichenfolge : Variant; begin zeichenfolge := '-4,56'; absGanzzahl := Abs(-595); absKommazahl := Abs(-7.234); absZeichenfolge := Abs(zeichenfolge); cpShowMessage('Absolut-Wert von Ganzzahl: ' + FloatToStr(absGanzzahl) + Chr(13) + Chr(10) + 'Absolut-Wert von Kommazahl: ' + FloatToStr(absKommazahl) + Chr(13) + Chr(10) + 'Absolut-Wert von Zeichenfolge: ' + FloatToStr(absZeichenfolge) + '.'); end.
Hinweise
Der übergebene Wert kann eine Ganzzahl, eine Fließkommazahl, aber auch eine Variable vom Typ Variant sein, solange sich diese in eine Zahl konvertieren lässt.
Das Ergebnis ist immer eine Wert vom Typ Float/Extended, auch wenn man einen Integerwert durch die Abs()-Funktion verarbeiten lässt. Diese Information ist für das Verständnis von Compiler-Meldungen und Umwandlung in Zeichenfolgen wichtig.
Variant ist ein Datentyp, der eine Vielzahl von strukturierten Informationen aufnehmen kann. Allerdings ist er wenig perfomant und führt leicht zu Fehlern bei der Programmierung und im Programmablauf. Daher sollte er mit Vorsicht eingesetzt werden. Aber das ist hier im Beispiel nicht ganz so entscheidend.