Komisches Float Problem

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
  • Hallo Leute


    Hab ein komisches Problem 8|


    mit dem Befehl /tax kann ich die steuern setzen.


    Da kommt erstma nen Auswahldialog, welche Steuer man setzen will, kein Problem :thumbup:


    Dann klickt man rein und es erscheint wieder ein Dialog mit der Eingabe. Da steht auch die jetzige Steuer im Titel. Diese kommt aus mysql und beträgt im Moment 0.06%


    So, da is schonmal das erste Problem! Im Dialog steht 0.05% statt 0.06%! Obwohl da im format-Befehl "%.2f%%" steht.. ?(


    So, wäre ja halb so schlimm. Dann gib ich halt mal z.B. 0.06 ins Eingabefeld ein. Er nimmt alles an, in der MySQL speichert er es auch mit 0.06.


    Danach erscheint ein Text, das die Steuer gesetzt wurde, allerdings steht das dort so:


    "Der allgemeine Steuersatz wurde auf 0.05 2.19521e-152esetzt" statt "Der allgemeine Steuersatz wurde auf 0.06% gesetzt"!


    Der Code dazu sieht so aus:


    new Float:tax = floatstr(inputtext);
    MySQLStuffUpdateFloat(1, "sGeneralTax", tax);
    format(string,STRING128,"Der allgemeine Steuersatz wurde auf %.2f%% gesetzt!",tax); //meiner meinung nach alles richtig :(
    return SendClientMessageToAll(C_ORANGE,string);



    habt ihr eine idee? :(


    MFG selEcT


    //edit: habs mal mit %.0f probiert, bringt auch nix.. wenn ich allerdings %.5f%% mache, dann kommt statt "Der allgemeine Steuersatz wurde auf 0.05 2.19521e-152esetzt" einfach "Der allgemeine Steuersatz wurde auf 0.06000 2.19521e-152esetzt"
    so, habs jetzt statt mit "%%" einfach mit "Prozent" angegeben. Jetzt wird es korrekt angezeigt. Allerdings wenn ich 0.06 eingebe, dann is wieder 0.5 (=> 0.05999) und wenn ich z.B. 0.8 eingebe, ist es 0.7.. kann es sein das da nicht richtig gerundet wird? oder was muss ich machen, damit das stimmt?

  • "%.2f %%"
    probier das mal so ich weiß nicht was Kye da wieder fürn Mist gemacht hat, wenn es wirklich daran liegt :D


    Uhh 3333 Beiträge xD

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • habs jetzt statt mit "%%" einfach mit "Prozent" angegeben. Jetzt wird es korrekt angezeigt


    Daraus habe ich es geschlossen :D
    Deswegen auch der Vorschlag^^

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Das liegt daran wie Gleitkommazahlen abgespeichert werden.
    Schau mal hier,
    http://de.wikipedia.org/wiki/G….C3.BCfung_auf_Gleichheit
    Bin mir eigentlich sicher,ich hätte das hier schon mal irgendwo erklärt.Finde den Post aber nicht mehr :pinch:


    Du musst es jedenfalls irgendwie umgehen,um 0.06 angezeigt zu bekommen.
    Ich würde spontan sagen du nimmst den Wert * 10 , rundest diesen auf und lässt ihn dann so darstellen.
    0.0%d