Warum wir ein Wert einfach zu NaN?
skipper6340
- javascript
5 molily0 skipper63400 Beat0 skipper63401 ChrisB
Hallo zusammen.
function(overlay, point){
if (point){
var signlat = 1;
var signlon = 1;
var lat = Math.round(point.y*1000000)/1000000;
var lon = Math.round(point.x*1000000)/1000000;
if(lat.value < 0) { signlat = -1; }
var latAbs = Math.abs(Math.round(lat.value*1000000));
if(lon.value < 0) { signlon = -1; }
var lonAbs = Math.abs(Math.round(lon.value*1000000));
alert(lon);
lon = Math.abs(Math.round(lon.value*1000000));
alert(lon);
.. vorweg der Code!
Warum, bitte macht Javascript aus eine numerischen Wert (am Anfang wird gerechnet) nach einer weiteren mathematischen Funktion ein 'NaN'?
Kann mir helfen was 'kaputt' ist!
Danke und Ciao skipper6340
var lat = Math.round(point.y\*1000000)/1000000; var lon = Math.round(point.x\*1000000)/1000000;
lat und lon sind hier stinknormale Number-Werte.
if(lat.value < 0) { signlat = -1; }
Hier behandelst du sie allerdings wie Objekte mit einer Eigenschaft value.
Das geht zwar. Dann werden die Zahlen kurzzeitig in Objekte umgewandelt und ihre Eigenschaft value abgerufen - diese existiert nicht, also bekommst du undefined heraus. Und undefined erzeugt bei sämtlichen mathematischen Operationen ein NaN. 5 + undefined ergibt NaN usw.
Lass das .value jeweils einfach weg.
Mathias
Lass das .value jeweils einfach weg.
Hallo Martin, hat leider nich gefunzt! Im URL mal das was es werden soll. Evtl. ist ja ein andere Fehler im Code!
Lass das .value jeweils einfach weg.
Hallo Martin, hat leider nich gefunzt! Im URL mal das was es werden soll. Evtl. ist ja ein andere Fehler im Code!
var latAbs = Math.abs(Math.round(lat.value*1000000));
wo weist du lat.value einen Wert zu?
var lonAbs = Math.abs(Math.round(lon.value*1000000));
ditto!
Die Verwendung von scalaren Variablen, die dann in Objekte gewandelt werden, kann kaum deine Absicht sein.
mfg Beat
..und was soll ich machen damit es funzt? klwild0
Hi,
..und was soll ich machen damit es funzt? klwild0
Erstens aufhören von „funzen“ zu reden, damit es uns nicht so schwer fällt, dich halbwegs ernst zu nehmen,
und zweitens das machen, was dir von Mathias vorgeschlagen wurde.
MfG ChrisB
Hi,
..und was soll ich machen damit es funzt? klwild0
Erstens aufhören von „funzen“ zu reden, damit es uns nicht so schwer fällt, dich halbwegs ernst zu nehmen,
und zweitens das machen, was dir von Mathias vorgeschlagen wurde.MfG ChrisB
Hallo, lieber Christian bist du im richtigen Film oder wo entlaufen? Bist du noch ganz bache oder was (wenn du wissen willst was Bache heist - Wiki das steht sowas; unter Dialekte) Ich denke du machst/bist hier eher die Witzfigur!
Wie man sehen kann habe ich das Konstrukt angepasst "if(lat < 0) { signlat = -1; }" und es geht immer noch nicht aber evtl. gibt es in anderen Foren profissionellere Hilfe als dummmes Gelaber lieber Chris!
Mit freundliche Grüssen skipper6340
P.S. Das wars dann, Ciao skipper6340