skipper6340: Warum wir ein Wert einfach zu NaN?

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

  1.   		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

    1. 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!

      1. 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

        --
        ><o(((°>           ><o(((°>
           <°)))o><                     ><o(((°>o
        Der Valigator leibt diese Fische
        1. ..und was soll ich machen damit es funzt? klwild0

          1. 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

            --
            RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
            1. 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