✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Funkcja formatu liczb waluty C++

30

Grosik za twoje myśli

Mając dodatnią liczbę całkowitą n reprezentującą ilość posiadanych centów, zwróć kwotę w sformatowanej walucie. Na przykład, biorąc pod uwagę n = 123456, zwróć „1234,56".

Przykład 1
Wejście
n = 132
Wyjście
„1.32″

Przykład 2
Wejście
n = 2
Wyjście
„0,02″

Przykład 3
Wejście
n = 100000000
Wyjście
„1 000 000,00″

Sformatuj numer waluty za pomocą C++

Chociaż to zadanie może wydawać się proste w przypadku wbudowanej funkcji, takiej jak printf lub format String (w Pythonie), zaimplementowanie tego formatowania liczby/waluty nie wydaje się trywialnym zadaniem. Najpierw musielibyśmy uzyskać część groszową (ułamek), obliczając dwie ostatnie cyfry (reszta przez 100). Następnie musimy zgrupować pozostałe cyfry w trzy.

Potrzebujemy funkcji string pad, aby dodać wiodące zera dla środkowych grup, a także grosz (do 2 cyfr, np. 0,01). Najważniejsza grupa nie powinna dodawać wiodących zer. Liczby są oddzielone przecinkiem.

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;
}

Powyższa funkcja C++ deklaruje lokalną funkcję lambda przy użyciu składni funkcjonalnej. Następnie grupujemy cyfry w trzy i umieszczamy je w wektorze. Następnie wypełniamy każdą grupę, w tym część pensową.

Źródło nagrywania: helloacm.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów