21 for (
int i = str.size() - 1; (str[i] ==
'0' &&
IsDigit(str[i - 2])); --i) {
25 str.erase(str.size() - nTrim, nTrim);
29 str.insert((
unsigned int)0, 1,
'-');
38 const std::string str =
TrimString(money_string);
45 const char *p = str.c_str();
51 nUnits += (*p++ -
'0') * nMult;
62 strWhole.insert(strWhole.end(), *p);
68 if (strWhole.size() > 10) {
77 nRet = nWhole +
Amount(nUnits);
static constexpr Amount zero()
NODISCARD bool ValidAsCString(const std::string &str) noexcept
Check if a string does not contain any embedded NUL (\0) characters.
constexpr bool IsDigit(char c)
Tests if the given character is a decimal digit.
static constexpr Amount SATOSHI
static constexpr Amount COIN
NODISCARD std::string TrimString(const std::string &str, const std::string &pattern=" \\\)
int64_t atoi64(const char *psz)
bool ParseMoney(const std::string &money_string, Amount &nRet)
Parse an amount denoted in full coins.
constexpr bool IsSpace(char c) noexcept
Tests if the given character is a whitespace character.
std::string FormatMoney(const Amount amt)
Money parsing/formatting utilities.