Float gibt 1.0

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
  • Hi!
    Ich habe heute an meiner Funktion rumgebastelt, womit die Admins Statistiken über den Spieler sehen können und wollte es nun so haben, dass die Spielzeit, die in Tagen angezeigt wird, eine Kommastelle bekommt. Wer sich den Scriptteil unten ansieht, versteht, was ich meine.
    Auf jeden Fall liefert mir die Sache immer nur "1.0" als Wert, egal, welche Spielzeit ein Spieler hat.
    Ich hatte es vorher als Integer, da ging es super, als ich jetzt aber auf Float umgestellt habe, macht der so'n Mist.
    Versteht einer das? Hab ich was falsch gemacht?
    Wenn ich anstatt %.1f zB. %f nehme, kommt im Prinzip das Gleiche raus, nur halt mehr Nullen.
    Den Teil "(pData[plid][onlinetime] / 60 / 24)" hatte ich auch schon direkt in der format Funktion drin, hatte nichts gebracht.
    Wenn ich ontimedays printen lasse, kommt auch ne 1.0 raus.


    new Float:ontimedays;
    ontimedays = (pData[plid][onlinetime] / 60 / 24);
    format(msg2, sizeof(msg2), "Loginname: %s, Spielzeit: %d min (%d Std; %.1f Tage)", pData[plid][playername], pData[plid][onlinetime], floatround((pData[plid][onlinetime] / 60), floatround_round), ontimedays);
    SendClientMessage(playerid, 0x6FA7E8FF, msg2);



    P.S.: pData[][onlinetime] ist eine ganz normale Integer Variable.

  • Versuch ma aus pData[][onllinetimes] auch nen Float zu machen
    Hatte sowas auch mal versucht , bei 90/60 zeigte der mit auch 1.0 an, allerdings bei bei 150/60 warens 2.0
    Wenn das zum Float machen nix brignt, dann mach ma die 24 und die 60 in ne Variable rein und mach die auch zum Float, wenns dann nicht geht -> kp

  • Okay thx, hab's gelöst. Die Variable pData[][onlinetime] wollte wirklich als Float behandelt worden sein.


    Hier mein korrekter Code, wenn's jmdn hilft:
    format(msg2, sizeof(msg2), "Loginname: %s, Spielzeit: %d min (%d Std; %.1f Tage)", pData[plid][playername], pData[plid][onlinetime], floatround((pData[plid][onlinetime] / 60), floatround_round), (float(pData[plid][onlinetime]) / 60 / 24));
    SendClientMessage(playerid, 0x6FA7E8FF, msg2);