GeldAnzeige ändern 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
  • //EDIT! Mein Fehler :) else return ..


    hier ist der Code der funktioniert, falls ihn jemand brauchen sollte :)


    stock GetCashResult(Betrag)
    {
    new betragstr[50];
    valstr(betragstr,Betrag);
    if(strlen((betragstr)) == 4) { strins(betragstr, ".", 1); }
    else if(strlen((betragstr)) == 5) { strins(betragstr, ".", 2); }
    else if(strlen((betragstr)) == 6) { strins(betragstr, ".", 3); }
    else if(strlen((betragstr)) == 7) { strins(betragstr,".",1); strins(betragstr,".",5); }
    else if(strlen((betragstr)) == 8) { strins(betragstr,".",2); strins(betragstr,".",6); }
    else if(strlen((betragstr)) == 9) { strins(betragstr,".",3); strins(betragstr,".",7); }
    else if(strlen((betragstr)) == 10) { strins(betragstr,".",1); strins(betragstr,".",5); strins(betragstr,".",9); }
    else if(strlen((betragstr)) == 11) { strins(betragstr,".",2); strins(betragstr,".",5); strins(betragstr,".",10); }
    else if(strlen((betragstr)) == 10) { strins(betragstr,".",3); strins(betragstr,".",5); strins(betragstr,".",11); }
    return betragstr;
    }


    printf("%s", GetCashResult(1));
    printf("%s", GetCashResult(10));
    printf("%s", GetCashResult(100));
    printf("%s", GetCashResult(1000));
    printf("%s", GetCashResult(10000));
    printf("%s", GetCashResult(100000));
    printf("%s", GetCashResult(1000000));
    printf("%s", GetCashResult(10000000));
    printf("%s", GetCashResult(100000000));
    printf("%s", GetCashResult(1000000000));


    =


    [19:38:03] 1
    [19:38:03] 10
    [19:38:03] 100
    [19:38:03] 1.000
    [19:38:03] 10.000
    [19:38:03] 100.000
    [19:38:03] 1.000.000
    [19:38:03] 10.000.000
    [19:38:03] 100.000.000
    [19:38:03] 1.000.000.000


    Danke an alle für die hilfe *.*

    2 Mal editiert, zuletzt von RedStyle ()

  • ersetze nach der ersten If-Abfrage alle "if" mit "else if"



    Sprich so:


    stock GetCashResult(Betrag)
    {
    new betragstr[50];
    valstr(betragstr,Betrag);
    if(strlen((betragstr)) == 4) { strins(betragstr, ".", 1); }
    else if(strlen((betragstr)) == 5) { strins(betragstr, ".", 2); }
    else if(strlen((betragstr)) == 6) { strins(betragstr, ".", 3); }
    else if(strlen((betragstr)) == 7) { strins(betragstr,".",1); strins(betragstr,".",5); }
    else if(strlen((betragstr)) == 8) { strins(betragstr,".",2); strins(betragstr,".",6); }
    else if(strlen((betragstr)) == 9) { strins(betragstr,".",3); strins(betragstr,".",7); }
    else if(strlen((betragstr)) == 10) { strins(betragstr,".",1); strins(betragstr,".",5); strins(betragstr,".",9); }
    else if(strlen((betragstr)) == 11) { strins(betragstr,".",2); strins(betragstr,".",5); strins(betragstr,".",10); }
    else if(strlen((betragstr)) == 10) { strins(betragstr,".",3); strins(betragstr,".",5); strins(betragstr,".",11); }
    return betragstr;
    }

  • Warum so umständlich, wenn die Lösung schon gegeben wurde?



    stock GetCashResult(betrag)
    {
    new idx[20], part;
    format(idx, sizeof(idx), "%i", betrag);
    part = strlen(idx)-3;
    while(part > 0)
    {
    strins(idx, ".", part);
    part -= 3;
    }
    return idx;
    }

  • Das Limit eines Integers ist 2.147.483.647, daher wird es nicht funktionieren. Was du machen könntest, ist das Geld im String zu formatieren, sodass man mehr als 2.147.483.647 haben kann.

  • EDIT:


    stock GetCashResult(Betrag)
    {
    new idx[20], part;
    format(idx, sizeof(idx), "%i", Betrag);
    part = strlen(idx)-3;
    while(part > 0)
    {
    strins(idx, ".", part);
    part -= 3;
    }
    return idx;
    }


    Hiermit gibt er auch nur 1.40.065.407 zurück trotz dass ich 9999999999 wollte

    Einmal editiert, zuletzt von RedStyle ()