Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Negative zu positiven werten Umwandeln
delphistart - Di 26.12.06 16:56
Titel: Negative zu positiven werten Umwandeln
Habe mal wieder eine einfache Frage zu der ich einfach keine Antwort finde:
Ich habe eine Integervariable von der ich nicht weis ob der Wert den Sie enthält über oder unter 0 liegt oder gar genau 0 ist. Wenn der Wert negativ, also unter 0 ist soll er zu einem positiven wert umgewandelt werden. Ansonsten zu 0.
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| if variable<0 then variable:=else variable:=0; |
Christian S. - Di 26.12.06 16:58
variable := -variable; ;-)
delphistart - Di 26.12.06 17:06
Christian S. hat folgendes geschrieben: |
variable := -variable; ;-) |
DANKE!
jaenicke - Di 26.12.06 17:28
Und dann gibts da noch die Funktion Abs, die lässt eine positive Zahl positiv und macht eine negative positiv...
GTA-Place - Di 26.12.06 17:48
Christian S. hat folgendes geschrieben: |
variable := -variable; ;-) |
Er möchte aber den Betrag einer Zahl, also nicht grundsätzlich das Vorzeichen vertauschen ;-).
Abs() ist - wie
jaenicke bereits sagte - das richtige.
jakobwenzel - Di 26.12.06 17:55
Wenn man aber den Code von TUFKAPL in delphistarts if-Bedingung einsetzt, isses auch das, was er will. Und so wars ja IMHO auch gemeint.
GTA-Place - Di 26.12.06 17:58
Stimmt - hab wieder nur die Hälfte gelesen - ändert aber nix daran, dass Abs(); kürzer ist ;-).
jakobwenzel - Di 26.12.06 18:04
Außer dass Werte > 0 anders behandelt werden. Bei der TUFKAPL+Delphistart-Lösung werden Werte > 0 zu 0, bei ABS zu negativen Werten.
@GTA: jetz haste 3/4 gelesen^^
jaenicke - Di 26.12.06 18:17
Ich meinte ja gar nicht, dass Abs hier unbedingt verwendet werden sollte, aber ich wollte es doch dazusagen, falls es später mal gebraucht wird.
Schließlich liest den Thread ja vielleicht später auch mal jemand anderes... ;-)
jakobwenzel hat folgendes geschrieben: |
Außer dass Werte > 0 anders behandelt werden. Bei der TUFKAPL+Delphistart-Lösung werden Werte > 0 zu 0, bei ABS zu negativen Werten. |
Ähh, sieh dir Abs mal nochmal an... :lol:
Abs gibt den Absolutwert, den Betrag eines Werts zurück. Ist der Wert größer oder gleich 0, dann bleibt er unverändert, ist er kleiner als 0 wird -1 mal der Wert (also der positive Wert) zurückgegeben.
GTA-Place - Di 26.12.06 18:18
Falsch, |-3| wird zu 3, |0| bleibt 0 und |3| bleibt 3. Das ist der Sinn von
Abs() [Absolute] ;-).
EDIT: Das "Falsch" bezog sich auf
jakobwenzel; Ich war zu langsam ;-).
jaenicke - Di 26.12.06 18:18
GTA-Place hat folgendes geschrieben: |
Falsch, |-3| wird zu 3, |0| bleibt 0 und |3| bleibt 3. Das ist der Sinn von Abs() [Absolute] ;-). |
Zu spät... Musst schneller tippen... :P
GTA-Place - Di 26.12.06 18:24
Siehe mein Edit. Aber ich hab auch gesehen, dass du deinen Beitrag gerade eben editiert hast. Das "musst schneller tippen" war noch nicht da ;-).
Hier noch ein Beispiel aus dem Alltag:
Ich z.B. verwende immer diese Funktion, wenn ich auf der Bank meinen Kontostand auslesen will:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| function GetKontostand(BLZ, Ktn, PIN: Integer;): Extended; var Bank: TBank; begin Bank := TBank.Create(BLZ, fmConnect); Bank.Ktn := Ktn; Bank.PIN := PIN; Result := Abs(Bank.GetKontoStand); Bank.Free; end; |
:mrgreen:
jaenicke - Di 26.12.06 18:26
:rofl: :rofl: :rofl:
[OT] Wenn die Banken das nur genauso machen würden... ;-) [/OT]
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!