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
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.
Thomas S. schrieb: > Wieso gibt es double Zahlen die nicht definiert sind? https://de.wikipedia.org/wiki/IEEE_754#Keine_Zahl_(NaN)
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!!
> Der bekommt da manchmal eine 1 vorgesetzt, ich hab das rausgefiltert
Stümper!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.