c++: Comment dois-je formater un double de la monnaie avec le signe du dollar?

J'ai une fonction qui prend une double et la retourne comme une chaîne de caractères avec des séparateurs de milliers. Vous pouvez le voir ici: c++: Format nombre avec une virgule?

#include <iomanip>
#include <locale>

template<class T>
std::string FormatWithCommas(T value)
{
    std::stringstream ss;
    ss.imbue(std::locale(""));
    ss << std::fixed << value;
    return ss.str();
}

Maintenant, je veux être capable de le formater comme monnaie d'un signe de dollar. Plus précisément, je veux obtenir une chaîne de caractères comme "$20,500" si, étant donné un double de 20500.

Ajoutant un signe de dollar ne fonctionne pas dans le cas de nombres négatifs parce que j'ai besoin "- de 5 000 $" non "$-5,000".

  • De travail avec bureau, vous pourriez envisager de std::put_money.
  • std::money_put.
InformationsquelleAutor User | 2012-12-04