Rechnung - Ich weiss nicht weiter

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
  • SA:MP Wiki | Floatround


    Parameter:

    Zitat

    (Float:value,floatround method: method=floatround_round)

    Was bewirkt diese funktion?
    Diese funktion rundet eine Float.


    Floatround methoden:

    Zitat

    floatround_roundRound to the nearest integer. A fractional part of exactly 0.5 rounds upwards (this is the default).


    floatround_floorRound downwards.


    floatround_ceilRound upwards.
    floatround_tozeroRound downwards for positive values and upwards for negative values (“truncate”).

    Benutzung:
    floatround(Variable/*oder Zahl*/,/*Methode z.B.*/floatround_ceil);

  • Ich bezweifel, daß "checks" 2000 ist und die andere 15. ;)
    Die Rechnung ist korrekt, daß Ergebnis wäre 300 - mit den Werten die du uns hier geliefert hast.


    Nochmal zum Verständnis, floatround rundet ein Float zu einem Integer.
    Der Eingangswert muß aber keines Wegs Floats sein, es darf bloß kein Array oder Enum sein. ;)

  • dma, es war ein beispiel ;) checks ist der PayCheck (der wird aber auch als ganze zahl mit print in der konsole ausgegeben).


    und ckurs ist tatsächlich 15 ;)


    jaa caccount gibt aber 0 aus.. (caccount wird zuerst mit "new caccount = 0;" definiert)


    bringt es was die definition zu ändern, d.h. nicht auf caccount=0 sondern einfach caccount; ?

  • Ein kleiner Test:

    new Float:fckurs = 15;
    new ckurs = 15;
    print("Teilen");
    printf("%d | %f",ckurs/100,fckurs/100);
    new caccount = 0;
    new Float:fcaccount = 0;
    new checks = 2000;
    caccount = checks * (ckurs / 100);
    fcaccount = checks * (fckurs / 100);
    print("Multiplizieren");
    printf("%d | %f",caccount,fcaccount);
    print("Runden");
    printf("%d | %d",floatround(caccount,floatround_round),floatround(fcaccount,floatround_round));

    Gibt aus:

    Code
    Teilen
    0 | 0.150000
    Multiplizieren
    0 | 300.000000
    Runden
    0 | 300


    Pawno muss die komma Zahl ja speichern,kann es aber nicht weil ckurs keine Float Zahl ist...


    Also einfach beides Float machen,gerundet als ganze Zahl speichern geht ja trotzdem...