18 int64_t n_abs = (
n > 0 ?
n : -
n);
19 int64_t quotient = n_abs/
COIN;
20 int64_t remainder = n_abs%
COIN;
21 string str =
strprintf(
"%d.%08d", quotient, remainder);
25 for (
int i = str.size()-1; (str[i] ==
'0' && isdigit(str[i-2])); --i)
28 str.erase(str.size()-nTrim, nTrim);
31 str.insert((
unsigned int)0, 1,
'-');
45 const char*
p = pszIn;
53 int64_t nMult =
CENT*10;
54 while (isdigit(*
p) && (nMult > 0))
56 nUnits += nMult * (*
p++ -
'0');
65 strWhole.insert(strWhole.end(), *
p);
70 if (strWhole.size() > 10)
72 if (nUnits < 0 || nUnits >
COIN)
74 int64_t nWhole =
atoi64(strWhole);
static const CAmount COIN
static const CAmount CENT
bool ParseMoney(const string &str, CAmount &nRet)
std::string FormatMoney(const CAmount &n)
int64_t atoi64(const char *psz)