Typumwandlung vom String in INT

mackattack

Mitglied
Moin

Ich hab mittlerweile schon viel gesucht, leider nix passendes gefunden...
Ich habe ein Problem mit meinen Variablen, und zwar:

Ich lade eine XML-Datei.. funktioniert auch alles wunderbar.
Nun will ich aus dieser XML-Datei Daten laden.... funktioniert auch wunderbar...

Die Daten die ich lade sind Zahlen, die aber wahrscheinlich als String behandelt werden und ich somit nicht mit ihnen rechnen kann.

Hier mein AS:
PHP:
stop();
idXML = new XML();
idXML.ignoreWhite = true;
idXML.load("xml/daten-id.xml");
idXML.onLoad = function(success) {
	if(success) {
		trace("ID geladen");
		max_i = idXML.firstChild.childNodes[1].childNodes[0].firstChild;
		parseFloat(max_i);   // soll angeblich meinen string in float umwandeln können
		max_i = max_i-1;     // rechnen mit der zahl
		trace(max_i);          // gibt immer NaN zurück, ausser ich lasse "max_i" direkt ausgeben, ohne damit zu rechnen.
	} else {
		trace("ID nicht geladen");
	}
}

vielleicht kann mir ja jemand helfen, wäre euch echt dankbar!

MfG,
MackAttack
 
Hi,

parseFloat und parseInt wandeln nicht einen übergebenen Parameter um (call by Reference), sondern geben einen Wert des neuen Typs zurück. Schreib es also so:
PHP:
max_i = parseFloat(max_i);

Gruß
.
 
was du aber auch nehmen könntest wäre int()
Das grenzt aber an Vergewaltigung: ^^ int() (eigentlich seit Flash 5 überholt) ist dafür gedacht, einen numerischen Wert auf ganzzahlige Werte zu runden - dass es auch mit Strings funktioniert ist auf die Gutmütigkeit des Players zurückzuführen aber kein sauberer Stil. ;)

Gruß
.
 
Ein Cast in Flash (ab MX2004) hat folgende Syntax:
Code:
typ(Variable);
in sofern wäre die Syntax:
PHP:
max_i = Number(max_i);
... Number ist der allgemeine Datentyp für numerische Werte; zwischen int und float wird nicht unterschieden.

Gruß
.
 
Zurück