Hallo mal wieder,
ich hatte immer wieder Probleme bei logischen Vergleichen oder Rechenoperationen unter Variablen mit unterschiedlichem Format.
Diese Frage ist dahre als reines "Verständnisding" zu sehen für die Zukunft...
Also:
Z.B. dann, wenn ich eine Variable mit einer anderen logisch verglichen habe oder wenn ich damit rechnen wollte.
So habe ich mal stundenlang ein einem Problem herumgesucht, bei dem eine Variable in einem Timer nicht hochzählte.
Der Counter war ein einer logischen, simplen If-Then-Bedingung:
------------------
Dim X as integer
Dim Y as word
.
.
.
if X>=Y then
incr Counter
endif
-----------------
Der Counter blieb aber immer "0", bis ich X auch als Word oder Y als Integer deklarierte.
Sowas hatte ich auch immer mal wieder, wenn ich verschiedene Formate miteinander verrechnen wollte, es kam nur Müll heraus.
Ich weiß, dass ich in einem Word nur einen bestimmten Zahlenraum habe wie in jedem anderen Format auch.
Aber warum ist es nicht möglich, z.B. in einem logischen Vergleich verschiedene Formate zu verwenden oder in einer Rechnung, die eigentlich logisch funktionieren müsste?
Das will sich mir nicht erschließen...
Ich weiß, dass das in absolute Grundlagen der Controller eingreift, aber ich kann das einfach nicht verstehen, warum das mal geht und mal nicht.
Auch wenn man den Zahlenraum dabei beachtet hat.
Gibt es irgendwo ein Regelwerk, welche Zahl man mit welcher vergleichen oder verrechnen kann oder eben was verboten ist?
In der Hilfe sehe ich zwar überall die Zahlenräumen und so triviale Dinge wie dass man keine negative Zahl in ein Byte oder Word schreiben kann, aber warum diese mathmatisch
eigentlich erlaubten Vorgänge hin und wieder nicht funktionieren, steht nirgendwo...
Gruss
Peer
ich hatte immer wieder Probleme bei logischen Vergleichen oder Rechenoperationen unter Variablen mit unterschiedlichem Format.
Diese Frage ist dahre als reines "Verständnisding" zu sehen für die Zukunft...
Also:
Z.B. dann, wenn ich eine Variable mit einer anderen logisch verglichen habe oder wenn ich damit rechnen wollte.
So habe ich mal stundenlang ein einem Problem herumgesucht, bei dem eine Variable in einem Timer nicht hochzählte.
Der Counter war ein einer logischen, simplen If-Then-Bedingung:
------------------
Dim X as integer
Dim Y as word
.
.
.
if X>=Y then
incr Counter
endif
-----------------
Der Counter blieb aber immer "0", bis ich X auch als Word oder Y als Integer deklarierte.
Sowas hatte ich auch immer mal wieder, wenn ich verschiedene Formate miteinander verrechnen wollte, es kam nur Müll heraus.
Ich weiß, dass ich in einem Word nur einen bestimmten Zahlenraum habe wie in jedem anderen Format auch.
Aber warum ist es nicht möglich, z.B. in einem logischen Vergleich verschiedene Formate zu verwenden oder in einer Rechnung, die eigentlich logisch funktionieren müsste?
Das will sich mir nicht erschließen...
Ich weiß, dass das in absolute Grundlagen der Controller eingreift, aber ich kann das einfach nicht verstehen, warum das mal geht und mal nicht.
Auch wenn man den Zahlenraum dabei beachtet hat.
Gibt es irgendwo ein Regelwerk, welche Zahl man mit welcher vergleichen oder verrechnen kann oder eben was verboten ist?
In der Hilfe sehe ich zwar überall die Zahlenräumen und so triviale Dinge wie dass man keine negative Zahl in ein Byte oder Word schreiben kann, aber warum diese mathmatisch
eigentlich erlaubten Vorgänge hin und wieder nicht funktionieren, steht nirgendwo...
Gruss
Peer