... the user friendly GPS tool


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
LengthCalculator - Tracks an mehreren Tagen
#4
(22.07.2014, 14:58)routeconverter Wrote:
(21.07.2014, 21:13)thomas.friese Wrote: In Zeile 167 wird bei:
int summedUp = totalTimeMilliSeconds > 0 ? (int) totalTimeMilliSeconds / 1000 : 0;

der Cast (int) totalTimeMilliSeconds in meinem Fall negativ ... geringfügig robuster dagegen wäre der Code mit cast nach division:

int summedUp = totalTimeMilliSeconds > 0 ? (int) (totalTimeMilliSeconds / 1000) : 0;

Ich habe den Cast auf int nun erst beim Aufruf fireCalculatedDistance() da ich glaube, daß mehr als 2^31 Sekunden - also knapp 70 Jahre - unwahrscheinlich sind. Eine Vorabversion habe ich gerade hochgeladen, bitte teste und berichte mal!

Den Cast später zu machen löst das Problem: das war ja gerade, dass Du nicht mit Sekunden sondern mit Millisekunden hantiert hast in dem Cast und erst DANACH die Division ausgewertet wird. und 2^31 Millisekunden sind "nur" etwa 25 Tage.

Bei mir war z.B.
totalTimeMilliseconds = 58720821000
(int)totalTimeMilliSeconds = -1408721144
==> (int)totalTimeMilliSeconds / 1000 = -1408721

Dein fireCalculatedDistance( ..., max( ...,summedUp)); hat den Fehler dann sogar wieder aufgefangen, der Code ist aber sicherer wenn Du später castest.

Die neue Version funktioniert auf jeden Fall auch mit meiner Datei.

Gruß
Thomas
Reply


Messages In This Thread
RE: LengthCalculator - Tracks an mehreren Tagen - by thomas.friese - 23.07.2014, 21:35

Forum Jump:


Users browsing this thread: 1 Guest(s)