Problem mit Float

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
  • Hiho


    Hab ein kleines Problem.


    Wenn ich ein Float mit 2 Stellen nach dem Komma angeben will (%.2f), dann zeigt es die falsche Zahl an.
    Also z.B. die Zahl ist 0.02, diese möchte ich nun mit %.2f ausgeben --> es steht aber 0.01! wenn ich das float ohne die 2 angebe (also nur %f), dann steht 0.019999!


    Wie das?


    MFG

  • Zeig mal den Code wie du es gemacht hast

    Also z.B. die Zahl ist 0.02, diese möchte ich nun mit %.2f ausgeben --> es steht aber 0.01!

    Wenn du die 0.02 zu 0.021 änderst, dann würde er das ausgeben 0.02
    wenn du es mit %.2f machst
    ich weiß ja nicht wie du es gemacht hast daher währe es mal vorteilhaft wenn man es sehen kann

    All in all it's just another brick in the wall

  • Zeig mal den Code wie du es gemacht hast

    Wenn du die 0.02 zu 0.021 änderst, dann würde er das ausgeben 0.02
    wenn du es mit %.2f machst
    ich weiß ja nicht wie du es gemacht hast daher währe es mal vorteilhaft wenn man es sehen kann


    Die 0.02 steht in der mysql, ich mach nix anders als die auszulesen und auszugeben:



    new Float:zahl,string[16];
    MySQLGetFloat("Zahl",zahl);
    format(string,sizeof(string),"%0.2f",zahl);
    return ShowPlayerDialog(playerid, Dialogid, DIALOG_STYLE_LIST, "Titel",string,"OK","Zurück");


    Mehr wird da nicht gemacht.


    edit:


    die mysql ausgabe funzt so:



    stock MySQLGetFloat(field[],&Float:value)
    {
    new query[128],data[128];
    format(query, sizeof(query), "SELECT %s FROM table",field);
    mysql_query(query); mysql_store_result();
    if(mysql_num_rows())
    {
    mysql_fetch_field(field,data);
    value = floatstr(data);
    }
    else
    {
    value = -1;
    }
    mysql_free_result();
    return 1;
    }


    edit: Da die Zahl eigentlich eine Prozentzahl darstellen sollte, funzt es leider auch nicht, wenn ich die %% dahinter wegnehme.. andere ideen?


    edit2: sorry fürs editieren :D der Fehler liegt sehr wahrscheinlich an floatstr, da ich mit %s die richtige anzeige bekomme. Wenn keine andere Lösung da ist, werde ich es als string auslesen..