17 int64_t n_abs = (n > 0 ? n : -n);
18 int64_t quotient = n_abs / COIN;
19 int64_t remainder = n_abs % COIN;
20 std::string str =
strprintf(
"%d.%08d", quotient, remainder);
24 for (
int i = str.size() - 1; (str[i] ==
'0' && isdigit(str[i - 2])); --i)
27 str.erase(str.size() - nTrim, nTrim);
30 str.insert((
unsigned int)0, 1,
'-');
31 else if (fPlus && n > 0)
32 str.insert((
unsigned int)0, 1,
'+');
46 const char* p = pszIn;
52 int64_t nMult = CENT * 10;
53 while (isdigit(*p) && (nMult > 0)) {
54 nUnits += nMult * (*p++ -
'0');
63 strWhole.insert(strWhole.end(), *p);
68 if (strWhole.size() > 10)
70 if (nUnits < 0 || nUnits > COIN)
72 int64_t nWhole =
atoi64(strWhole);
73 CAmount nValue = nWhole * COIN + nUnits;