我有一个函数,它接受一个双精度并将其作为带有千位分隔符的字符串返回。你可以在这里看到它: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”。