Forum: PC-Programmierung C# double Zahlen zeihgen "n. def."


von Thomas S. (thomas_s72)


Lesenswert?

Hallo,
momentan programmiere ich ein kleines Programm, das einige Tausend GPS 
Koordinaten in eine Strecke umrechnet.
Ausgabe in C# auf dem PC. Es wird immer eine Teilstrecke (double) zur 
Gesamtstrecke addiert.
Schreibe es in eine Logdatei, dabei kommt nach einigen hundert 
Durchläufen das heraus:

Ticket | Koorinaten | Strecke

872|8,4827458|50,0962095|2,43246990029904
873|8,482746|50,0962093|2,43246990029904
874|8,4827458|50,0962093|2,43246990029904
875|8,4827458|50,0962093|2,43246990029904
876|8,4827458|50,0962091|2,43246990029904
877|8,4827458|50,0962091|n. def.
878|8,4827458|50,0962091|n. def.

die Koordinaten ändern sich nicht (Fahrzeug stand), danach sehe ich nur 
noch n.def.

Wieso gibt es double Zahlen die nicht definiert sind? Wie fange ich 
sowas ab? Hab bisher immer nur mit ganzen Zahlen gerechnet.
Vielen Dank für Anregungen. Gruß
Thomas

von Martin O. (ossi-2)


Lesenswert?

n. def erscheinen nicht einfach so, sondern durch unzulässige 
arithmetische Operationen, nicht initialisisierte Werte etc.. Du musst 
jetzt schauen welches Zwischenresultat bei deinen Berechnungen als 
erstes schiefläuft.

von Cyblord -. (Gast)


Lesenswert?

Thomas S. schrieb:
> Wieso gibt es double Zahlen die nicht definiert sind?

https://de.wikipedia.org/wiki/IEEE_754#Keine_Zahl_(NaN)

von Thomas S. (thomas_s72)


Lesenswert?

Ja, das war ein guter Tip. In der Funktion die ich da einfach mal 
übernommen habe ist ein ACOS drin.
Der bekommt da manchmal eine 1 vorgesetzt, ich hab das rausgefiltert. 
Nun ist es OK.
Besten Dank!!

von --- (Gast)


Lesenswert?

> Der bekommt da manchmal eine 1 vorgesetzt, ich hab das rausgefiltert

Stümper!

von Thomas S. (thomas_s72)


Lesenswert?

Es sind eben nicht alle solche Superprogrammierer wie du --Gast.
Zum Beispiel derjenige, der die Berechnungsroutine veröffentlicht hat.


Ich hab da lediglich in meiner stümperhaften Weise den Ausnahmefall 
abgefangen und gebe dann eine Strecke von 0 zurück.
Bestimmt weißt du eine viel bessere Lösung.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.