Warum wird der String nicht in eine Zahl umgewandelt?
User1989
- javascript
0 Klawischnigg0 molily0 ChrisB
Hallo! Ich habe ein Script geschrieben, welches mir die Breite des Bildschirms ausgibt.
css: breite: 200px;
var hoehe = getComputedStyle("rand", null).getPropertyValue("width");
parseFloat(hoehe);
breite +=2;
Wenn ich dann mit dem alert Befehl die Variable Breite anzeige, wird es mir so angezeigt: 200.2!
Mit parseFloat müsste die Variable doch in eine Zahl umgewandelt worden sein.
Hi there,
css: breite: 200px;
var hoehe = getComputedStyle("rand", null).getPropertyValue("width");
parseFloat(hoehe);
breite +=2;
Mit parseFloat müsste die Variable doch in eine Zahl umgewandelt worden sein.
Was Du mit der Variablen "hoehe" machst, ist der Variablen "breite" ziemlich egal...
Hi there,
css: breite: 200px;
var hoehe = getComputedStyle("rand", null).getPropertyValue("width");
parseFloat(hoehe);
breite +=2;Mit parseFloat müsste die Variable doch in eine Zahl umgewandelt worden sein.
Was Du mit der Variablen "hoehe" machst, ist der Variablen "breite" ziemlich egal...
Habe mich da nur vertippt:)
Hi there,
Habe mich da nur vertippt:)
naja, vielleicht hast Du Dich ja woanders auch vertippt? Am einfachsten jedenfalls ist es, eine Variable, von der Du annimmst, sie enthalte eine Zahl, mit eins zu multiplpizieren; danach kannst Du sicher arithmetische Operationen damit durchführen. Und, wie Molily schon geschrieben hat, Gleitkommazahlen haben am Bildschirm nichts verloren, also parseInt und nicht parseFloat...
Hi,
parseFloat(hoehe);
Was Du mit der Variablen "hoehe" machst, ist der Variablen "breite" ziemlich egal...
er macht nichts mit der Variablen "hoehe". Genauso gut hätte er in den Code die folgende Zeile schreiben können:
42;
Das kostet noch etwas weniger an Rechenzeit und hat den selben Effekt: gar keinen.
Cheatah
@@Cheatah:
nuqneH
42;
Das kostet noch etwas weniger an Rechenzeit
Bedenke die Rechenzeit, die das vorher schon gekostet hat!
Qapla'
[latex]Mae govannen![/latex]
42;
Das kostet noch etwas weniger an Rechenzeit
Bedenke die Rechenzeit, die das vorher schon gekostet hat!
Ach, was sind schon 7½ Millionen Jahre unter Freunden...
Stur lächeln und winken, Männer!
Kai
Hallo,
parseFloat(hoehe);
Was Du mit der Variablen "hoehe" machst, ist der Variablen "breite" ziemlich egal...
er macht nichts mit der Variablen "hoehe".
doch, er liest ihren Wert - um ihn umzuwandeln und das Ergebnis dann wegzuwerfen.
Genauso gut hätte er in den Code die folgende Zeile schreiben können:
42;
;-)
Ciao,
Martin
Hallo,
var hoehe = getComputedStyle("rand", null).getPropertyValue("width");
getComputedStyle erwartet ein Elementobjekt als ersten Parameter, keinen String. Und wieso nennst du die Variable Höhe, wenn du die Breite ausliest? ;)
Vermutung: In manchen Browsern gibt getComputedStyle Kommazahlen für Pixelwerte zurück.
parseFloat(hoehe);
breite +=2;Wenn ich dann mit dem alert Befehl die Variable Breite anzeige, wird es mir so angezeigt: 200.2!
Wenn deine Vermutung stimmt, dass der Wert vom Typ String ist, dann muss er vorher "200." gewesen sein – sehr unwahrscheinlich. Wäre er "200", käme stattdessen "2002" heraus, wenn du "2" anhängst.
Mit parseFloat müsste die Variable doch in eine Zahl umgewandelt worden sein.
Es ist wahrscheinlich eine Zahl – nur offenbar keine ganze Zahl. Wenn du eine ganze Zahl brauchst, verwende http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#parse_int@title=parseInt.
Mathias
Hi,
und noch zusätzlich zum bisher gesagten:
var hoehe = getComputedStyle("rand", null).getPropertyValue("width");
parseFloat(hoehe);
hoehe hat hiernach immer noch den selben Typ wie vorher.
parseFloat ändert nicht den Variableninhalt, sondern gibt einen Wert zurück.
MfG ChrisB