|
|
|
@ -313,9 +313,18 @@ void ParseString(const string& str, char c, vector<string>& v)
|
|
|
|
|
|
|
|
|
|
string FormatMoney(int64 n, bool fPlus)
|
|
|
|
|
{
|
|
|
|
|
n /= CENT;
|
|
|
|
|
string str = strprintf("%"PRI64d".%02"PRI64d, (n > 0 ? n : -n)/100, (n > 0 ? n : -n)%100);
|
|
|
|
|
for (int i = 6; i < str.size(); i += 4)
|
|
|
|
|
string str = strprintf("%.08f", double(n > 0 ? n : -n)/double(COIN));
|
|
|
|
|
|
|
|
|
|
// Right-trim excess 0's before the decimal point:
|
|
|
|
|
int nTrim = 0;
|
|
|
|
|
for (int i = str.size()-1; (str[i] == '0' && isdigit(str[i-2])); --i)
|
|
|
|
|
++nTrim;
|
|
|
|
|
if (nTrim)
|
|
|
|
|
str.erase(str.size()-nTrim, nTrim);
|
|
|
|
|
|
|
|
|
|
// Insert thousands-separators:
|
|
|
|
|
size_t point = str.find(".");
|
|
|
|
|
for (int i = (str.size()-point)+3; i < str.size(); i += 4)
|
|
|
|
|
if (isdigit(str[str.size() - i - 1]))
|
|
|
|
|
str.insert(str.size() - i, 1, ',');
|
|
|
|
|
if (n < 0)
|
|
|
|
|