Unklarheiten mit Floatwert und Multiplikation

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


    Ich bin momentan an einem Businesssystem und ich komme nicht weiter. Ich will, dass wenn man Waren an das Business verkauft, verschiedene Preis bekommt. Dazu benutze ich einen Faktor welcher im Bereich von 2 bis 1.1 liegt. Die Menge, die der User verkauft, wird mit dem Faktor multipliziert und ihm dann als Geld gegeben. Nun bekomme ich aber Warnings , da mir nicht ganz klar ist, wie ich das handhaben muss. Mein Code sieht momentan so aus, jedoch frage ich mich, ob so ich einfach den Faktor reinschreiben kann:



    Das Ergebnis soll gerundet werden, deshalb benütze ich keinen Float-Wert :


    new geld = menge * 40;
    new menge, string[156];
    if(ShopInfo[shopid][ShopLager] > 90)
    {
    PlayerInfo[playerid][pWaren] -= menge;
    ShopInfo[shopid][ShopLager] += menge;
    new geld = menge * 1.1; //Zeile 9918
    GivePlayerMoney(playerid, geld);
    format(string, 128, "Du hast %d Pakete für insgesamt %d Dollars verkauft",menge, geld);
    SendClientMessage(playerid, COLOR_GREEN, string);
    return 1;
    }


    Warnings:


    C:\Users\Simon\Desktop\dudalusv243.pwn(9918 : warning 219: local variable "geld" shadows a variable at a preceding level

  • Du hast die Variable "geld" schon definiert ;) du musst den Namen ändern xD
    new GanzVielGeld = menge * 40;

    Zitat

    Das Ergebnis soll gerundet werden, deshalb benütze ich keinen Float-Wert :


    Es gibt auch Floatround ;)

    new Float: XYZ = 3.123456;
    printf("%d", floatround(XYZ);
    Das wäre dann 3 :D