Hallo,
mir ist gestern folgendes aufgefallen :
Global a$ = "5"
Print a$ * 32
Die Ausgabe ist : 532
Hat mich irgendwie verblüfft, den ich hatte 160 erwartet.
Habe ich da einen Denkfehler ??
Ist das richtig so ??
Gruß Heiko
Naja, jein. Igentlich sollte man strings + Zahlen nicht addieren usw. Weil "5" + 5 nicht "10" gibt, sondern "55". Du pappst 2 Strings halt zusammen, was sollst Du sonst damit machen.
Bitte Zahlen immer als Zahlen, und sobald ein String dabei ist, Klammern setzten, weil der zusammenklebt:
"5"+5+5 = "555"
"5"+(5+5) = "510"
Hallo,
1. Ich habe ja nicht addiert, sondern multipliziert
2. die 32 steht ja nicht in Anfürhungszeichen
Der Compiler sollte doch eine solche Konstruktion anmeckern.
Eigentlich hatte ich im Programm folgenden Code:
...
str$ = INIGET$(section$,"Ausgang")
SPLITSTR(str$, feld$[],",")
IF str$ <> "NO_DATA"
new_map.a_map$[0][0] = feld$[0] // x pos für Ausgang
new_map.a_map$[0][1] = feld$[1] // y pos für Ausgang
new_map.a_map$[0][2] = feld$[2] // Name der Map
new_map.a_map$[0][3] = feld$[3] // x pos für Ausgang
new_map.a_map$[0][4] = feld$[4] // x pos für Ausgang
....
....
akt_posx = MAPS[map_nr].a_map$[0][3] * 32Eigentlich hatte ich eben jetzt erwartet, das in akt_posx 160 steht, da ja die
Variable als Zahl definiert ist.
Aber es kam halt 935 als Zahl raus.
So ging es dann :
akt_posx = INTEGER(MAPS[map_nr].a_map$[0][3]) * 32
Gruß Heiko
Ja, so gehts. Er wandelt eigentlich immer alles in Strings um, und dann kommt erst der Operator.