Gildo hat geschrieben: ↑02.04.2021, 13:32
Ist nur komisch das es mit der CCU2 funktioniert hat und die CCU3 das nicht mehr versteht.
Hmmm... nicht wirklich komisch. Die CCU wandelt intern die Variablentypen je nach Inhalt bedarfsmäßig um. Erst kürzlich habe ich wieder gemahnt, sich auf diesen Automatismus, der in anderen Sprachen auch eher unüblich ist, zu verlassen. Kann durchaus mal sein, dass dieses überarbeitet und an das Verhalten in anderen Scriptsprachen angeglichen wird. Scriptvariablen deklariert man eben vorzugsweise für den Typ, für den man sie auch zu verwenden gedenkt, bzw. beim Import von Inhalt wandelt man diesen auf das entsprechende Typsystem.
Beispiel: Wenn man eben das Datum importiert, wandelt man es eben in das Format, mit dem man solche Vergleiche anstellen will. Will ich das Datum integer vergleichen, dann wandelt man es eben in eine Integerzahl. Ein Vergleich von integer mit string kann nur wie von Black dargelegt in die Hose gehen. Mit dem Verzicht auf die automatische Typwandlung ist man vor irgendwelchen Automatikwandlungsfehlern wenigstens relativ sicher. Alternativ wandelt man direkt vor der Vergleichs- oder mathematische Operation. Die Mathematikfunktionen der Scriptsprache halten auch so einige Überraschungen bereit. Da kommt bei 1.2 * 3 auch nicht unbedingt das Gleiche wie bei 3 * 1.2 raus.
Code: Alles auswählen
real produkt_a = 1.2 * 3;
WriteLine(produkt_a);
real produkt_b = 3 * 1.2;
WriteLine(produkt_b);
Gruß und frohe Ostern Xel66