float+=float klappt nicht richtig

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • moin.
    ich habe versucht in meinem script einen kilometerzaehler einzubauen. das klappt auch relativ gut doch ab 50000 kilometer wird die sache irgendwie komisch.


    floatcararray[v][0]=ErmittleGeschwindigkeit(i,true)/36000.0;
    fahrzeuge[v][fkilometer]+=floatcararray[v][0];


    saehe dann zb so aus ungefair:


    10000.00000 += 0.00135


    das klappt auch ziemlich gut nur wenn ich jetzt:


    50000.00000 += 0.00135


    klappt das ganze nichtmehr?
    aber wenn die zweite zahl ein bisschen groesser wird klappt es wieder zb so:


    50000.00000 += 0.00485


    und ich bin schon am verzweifeln weil ich nicht verstehen kann wieso er das nicht zusammenrechnen kann.
    kennt jemand das gleiche problem ?

    Einmal editiert, zuletzt von Tround ()

  • Das selbe Problem hatte ich auch :S Ich weiß auch nicht warum, aber wie es scheint sind die werte von Anfang an ungenau, sie werden lediglich mit steigendem wert noch ungenauer. Über eine Lösung dieses Problems wäre ich ebenfalls sehr erfreut.


    Mfg
    F_nod

  • Also floatadd funktioniert nicht, da der wert sehr ungenau ist genau wie bei der normalen rechnung.


    Das funktioniert leider auch nicht :/


    mfg
    FNod

  • fahrzeuge[v][fkilometer] = (floatcararray[v][0]+fahrzeuge[v][fkilometer]);
    ist leider genau das gleiche.. wenn mein kilometerstand (fahrzeuge[v][fkilometer]) bei 50000 steht und ich unter 40kmh fahre wird nichts dazugerechnet. ich versteh nur nicht warum es dann bei 10000 so gut funktioniert.


    edit: ich hatte auch schon davor floatadd ausprobiert aber da ist es wieder genau das gleiche spiel..



    floatcararray[v][0]=ErmittleGeschwindigkeit(i,true)/36000.0;
    new Float:olol;
    olol = floatadd(floatcararray[v][0], fahrzeuge[v][fkilometer]);
    fahrzeuge[v][fkilometer]=olol;


    bumpfant

    2 Mal editiert, zuletzt von Tround ()