6#include <inflection/dialog/fwd.hpp>
7#include <inflection/dialog/SpeakableConcept.hpp>
8#include <inflection/util/fwd.hpp>
9#include <inflection/util/ULocale.hpp>
10#include <icu4cxx/fwd.hpp>
11#include <unicode/unum.h>
45 int32_t maximumFractionDigits { -1 };
46 int32_t minimumFractionDigits { -1 };
47 int32_t maximumIntegerDigits { -1 };
48 int32_t minimumIntegerDigits { -1 };
49 int32_t groupingUsed { -1 };
50 int32_t roundingMode { -1 };
53 static int64_t
longValue(const ::inflection::dialog::NumberConcept::Number& value);
54 static double doubleValue(const ::inflection::dialog::NumberConcept::Number& value);
205 virtual ::std::u16string
asWords(const ::std::u16string& variant)
const;
238 virtual ::std::u16string
asDigits(const ::std::u16string& variant)
const;
241 ::icu4cxx::NumberFormat createSimpleNumberFormat(const ::inflection::util::ULocale& locale)
const;
242 ::icu4cxx::NumberFormat* configure(::icu4cxx::NumberFormat* numberFormat)
const;
243 ::std::u16string format(UNumberFormatStyle type, const ::std::u16string& variant)
const;
244 ::icu4cxx::NumberFormat createRuleBasedNumberFormat(UNumberFormatStyle type)
const;
245 bool isIntegral()
const;
246 ::std::u16string format(const ::icu4cxx::NumberFormat& rbnf)
const;
247 static ::std::u16string postProcess(const ::std::u16string& formattedValue);
284 NumberConcept(int64_t value, const ::inflection::util::ULocale& language, const ::inflection::util::ULocale& regionLocale);
291 NumberConcept(
double value, const ::inflection::util::ULocale& language, const ::inflection::util::ULocale& regionLocale);
Provides representation of numerics as lexical tokens, such as ordinals or cardinals.
virtual NumberConcept * roundCeiling() const
virtual NumberConcept * getAbsolute() const
virtual int32_t getMaximumFractionDigits() const
virtual NumberConcept * roundFloor() const
bool operator==(const NumberConcept &o) const
virtual const ::inflection::util::ULocale & getRegionLocale() const
virtual const ::inflection::util::ULocale & getLanguage() const
virtual bool getIsNegative() const
virtual NumberConcept * maxFractionDigitsAboveOne(int32_t given) const
virtual SpeakableString asSpokenWords(const ::std::u16string &variant) const
virtual ::std::u16string getAsWords() const
virtual NumberConcept * maxIntegerDigits(int32_t max) const
virtual NumberConcept * roundDown() const
double doubleValue() const
virtual NumberConcept * maxFractionDigits(int32_t max) const
virtual ::std::u16string asWords(const ::std::u16string &variant) const
NumberConcept(const NumberConcept &original)
virtual NumberConcept * roundHalfDown() const
virtual ::std::u16string getAsOrdinalDigits() const
virtual NumberConcept * minIntegerDigits(int32_t min) const
NumberConcept(int64_t value, const ::inflection::util::ULocale &language, const ::inflection::util::ULocale ®ionLocale)
virtual bool hasFraction() const
SpeakableString * toSpeakableString() const override
virtual ::std::u16string asDigits(const ::std::u16string &variant) const
std::partial_ordering operator<=>(const NumberConcept &o) const
::std::u16string toString() const override
virtual NumberConcept * roundUp() const
std::size_t operator()(const NumberConcept &o) const noexcept
NumberConcept(double value, const ::inflection::util::ULocale &language, const ::inflection::util::ULocale ®ionLocale)
virtual SpeakableString getAsSpokenWords() const
int64_t longValue() const
virtual NumberConcept * minFractionDigits(int32_t min) const
virtual SpeakableString getAsDigits() const
virtual NumberConcept * grouping(bool grouping) const
virtual NumberConcept * roundHalfUp() const
The base interface for all concepts that can be formatted to a SpeakableString.
Represents a string with both a spoken and written representation.
An object that represents a specific geographical, political, or cultural region.
The C++ namespace for Inflection.