I was interested to format the loan amount when the result of the mortgage repayment calculation is displayed and I came across this code (which I modified a little). And thanks to the author whose name I don't know.
It takes a value in a double and returns a string formatted for currency with two decimal places.
Thought I'd post it for what it's worth.
#include <string>
std::string formatCurrency(double dv)
{
const std::string radix = ".";
const std::string thousands = ",";
const std::string unit = "$";
unsigned long v = (unsigned long) ((dv * 100.0) + .5)