double を受け取り、それを 1000 区切りの文字列として返す関数があります。ここで確認できます: c++: 数値をコンマでフォーマットしますか?
#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();
}
今、ドル記号で通貨としてフォーマットできるようにしたいと考えています。具体的には、20500 の倍数が与えられた場合、「$20,500」などの文字列を取得したいと考えています。
「$-5,000」ではなく「-$5,000」が必要なため、負の数の場合は先頭にドル記号を付けても機能しません。