✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

C++-Währungszahlenformatfunktion

34

Ein Penny für deine Gedanken

Bei einer positiven Ganzzahl n, die den Betrag in Cent darstellt, den Sie haben, geben Sie den formatierten Währungsbetrag zurück. Beispiel: Bei n = 123456 geben Sie „1.234,56″ zurück.

Beispiel 1
Eingang
n = 132
Ausgang
„1,32″

Beispiel 2
Eingang
n = 2
Ausgang
„0.02″

Beispiel 3
Eingabe
n = 100000000
Ausgabe
„1.000.000,00″

Formatieren Sie eine Währungsnummer mit C++

Obwohl diese Aufgabe mit der eingebauten Funktion wie printf oder dem String-Format (in Python) einfach erscheinen mag, scheint es keine trivale Aufgabe zu sein, diese Zahlen-/Währungsformatierung zu implementieren. Zuerst müssten wir den Penny-Teil (Bruch) erhalten, indem wir die letzten beiden Ziffern berechnen (Rest von 100). Dann müssen wir die anderen Ziffern in drei gruppieren.

Wir brauchen eine String-Pad-Funktion, um die führenden Nullen für die mittleren Gruppen und auch den Penny (bis zu 2 Ziffern wie 0,01) hinzuzufügen. Die höchstwertige Gruppe sollte keine führenden Nullen hinzufügen. Die Nummern werden durch Komma getrennt.

string solve(int n) {
    auto pad = [](int v, int d) {
        string ans = std::to_string(v);
        if (ans.size() < d) {
            ans = string(d - (int)ans.size(), '0') + ans;
        }
        return ans;
    };
    int cents = n % 100;
    n /= 100;
    vector<int> groups;
    while (n > 0) {
        groups.insert(begin(groups), n % 1000);
        n /= 1000;
    }
    string ans = "";
    if (!groups.empty()) {
        ans += std::to_string(groups[0]);
        if (groups.size() > 1) {
            ans += ",";
            for (int i = 1; i + 1 < groups.size(); ++ i) {
                ans += pad(groups[i], 3) + ",";
            }              
            ans += pad(groups.back(), 3);
        }
    } else {
        ans += "0";
    }
    ans += ".";
    ans += pad(cents, 2);
    return ans;
}

Die obige C++-Funktion deklariert eine lokale Lambda- Funktion unter Verwendung der funktionalen Syntax. Dann gruppieren wir die Ziffern in drei und fügen sie in den Vektor ein. Dann polstern wir jede Gruppe einschließlich des Penny-Teils.

Aufnahmequelle: helloacm.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen