float Glatt addieren

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
  • Hallöchen, ich hätte gerne das PlayerInfo[playerid][Test] mit float:var addiert wird


    Meine Lösungsversuche
    //Test = 2806 / var = 2.110107 / Benötigtes Ergebniss = 2808
    var = PlayerInfo[playerid][Test]+10*(1-0.789); // = 2.110107
    PlayerInfo[playerid][Test] += _:var;
    PlayerInfo[playerid][Test] += floatround(var);
    //Ausgegebenes Ergebniss mit format = 1160744121


    Hat jemand einen Lösungsansatz für mich?


    Gruß
    varrez

  • 1160744121

    Zeig mal wie du das ausgibst :D
    So ist es eigentlich richtig, du musst im format %d oder %i verwenden, aber nicht %f ;)


    //Edit:
    Und PlayerInfo[playerid][Test] muss natürlich n int sein :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Zeig mal wie du das ausgibst :D So ist es eigentlich richtig, du musst im format %d oder %i verwenden, aber nicht %f ;)


    //Edit:
    Und PlayerInfo[playerid][Test] muss natürlich n int sein :)

    PlayerInfo[playerid][Test] ist ein Int,
    ausgeben hab ich PlayerInfo[playerid][Test] mit %d und %i versucht.


    format(string, sizeof string, "%i", PlayerInfo[playerid][Test]);
    SendClientMessage(playerid, COLOR_GREY, string);


    würde dann das selbe Ergebniss ausgeben (1160744121)

  • Naja...also:



    PlayerInfo[playerid][Test] += floatround(var);
    format(string, sizeof string, "%i", PlayerInfo[playerid][Test]);
    SendClientMessage(playerid, COLOR_GREY, string);
    Bei mir funktioniert das einwandfrei :D


    Voraussgesetzt du hast Test auf 0 gesetzt ;)
    und var hat wirklich diesen Wert :D

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ich hab meinen Fehler gefunden. Wenn PlayerInfo[playerid][Test] = 2806 und floatround(var) = 2 (2.110107) sind und ich beides addieren möchte, sollte ich PlayerInfo[playerid][Test] wieder von var abziehen und meine 2 Punkte zu erhalten. Richtig ist also:


    PlayerInfo[playerid][Test] += floatround(var)-PlayerInfo[playerid][Test];


    Somit hab ich eben also mein Ergebniss von 2808 erhalten :P