ICU 73.2  73.2
Public Member Functions | Friends
icu::number::FormattedNumber Class Reference

The result of a number formatting operation. More...

#include <formattednumber.h>

Inheritance diagram for icu::number::FormattedNumber:
icu::UMemory icu::FormattedValue

Public Member Functions

 FormattedNumber ()
 Default constructor; makes an empty FormattedNumber.
 FormattedNumber (FormattedNumber &&src) noexcept
 Move constructor: Leaves the source FormattedNumber in an undefined state.
virtual ~FormattedNumber () override
 Destruct an instance of FormattedNumber.
 FormattedNumber (const FormattedNumber &)
 Copying not supported; use move constructor instead.
FormattedNumberoperator= (const FormattedNumber &)
 Copying not supported; use move assignment instead.
FormattedNumberoperator= (FormattedNumber &&src) noexcept
 Move assignment: Leaves the source FormattedNumber in an undefined state.
UnicodeString toString (UErrorCode &status) const override
 

Returns the formatted string as a self-contained UnicodeString.


UnicodeString toTempString (UErrorCode &status) const override
AppendableappendTo (Appendable &appendable, UErrorCode &status) const override
 

Appends the formatted string to an Appendable.


UBool nextPosition (ConstrainedFieldPosition &cfpos, UErrorCode &status) const override
template<typename StringClass >
StringClass toDecimalNumber (UErrorCode &status) const
 Export the formatted number as a "numeric string" conforming to the syntax defined in the Decimal Arithmetic Specification, available at http://speleotrove.com/decimal.
MeasureUnit getOutputUnit (UErrorCode &status) const
 Gets the resolved output unit.
UDisplayOptionsNounClass getNounClass (UErrorCode &status) const
 Gets the noun class of the formatted output.
void getDecimalQuantity (impl::DecimalQuantity &output, UErrorCode &status) const
 Gets the raw DecimalQuantity for plural rule selection.
void getAllFieldPositionsImpl (FieldPositionIteratorHandler &fpih, UErrorCode &status) const
 Populates the mutable builder type FieldPositionIteratorHandler.

Friends

class LocalizedNumberFormatter
class SimpleNumberFormatter
struct impl::UFormattedNumberImpl

Detailed Description

The result of a number formatting operation.

This class allows the result to be exported in several data types, including a UnicodeString and a FieldPositionIterator.

Instances of this class are immutable and thread-safe.

Stable:
ICU 60

Definition at line 47 of file formattednumber.h.


Constructor & Destructor Documentation

Default constructor; makes an empty FormattedNumber.

Stable:
ICU 64

Definition at line 54 of file formattednumber.h.

Move constructor: Leaves the source FormattedNumber in an undefined state.

Stable:
ICU 62
virtual icu::number::FormattedNumber::~FormattedNumber ( ) [override, virtual]

Destruct an instance of FormattedNumber.

Stable:
ICU 60

Copying not supported; use move constructor instead.


Member Function Documentation

Appendable& icu::number::FormattedNumber::appendTo ( Appendable appendable,
UErrorCode status 
) const [override, virtual]

Appends the formatted string to an Appendable.

For more information, see FormattedValue::appendTo()

Stable:
ICU 62

Implements icu::FormattedValue.

void icu::number::FormattedNumber::getAllFieldPositionsImpl ( FieldPositionIteratorHandler &  fpih,
UErrorCode status 
) const

Populates the mutable builder type FieldPositionIteratorHandler.

Internal:
Do not use. This API is for internal use only.
void icu::number::FormattedNumber::getDecimalQuantity ( impl::DecimalQuantity &  output,
UErrorCode status 
) const

Gets the raw DecimalQuantity for plural rule selection.

Internal:
Do not use. This API is for internal use only.

Gets the noun class of the formatted output.

Returns `UNDEFINED` when the noun class is not supported yet.

Returns:
UDisplayOptionsNounClass
Draft:
This API may be changed in the future versions and was introduced in ICU 72

Gets the resolved output unit.

The output unit is dependent upon the localized preferences for the usage specified via NumberFormatterSettings::usage(), and may be a unit with UMEASURE_UNIT_MIXED unit complexity (MeasureUnit::getComplexity()), such as "foot-and-inch" or "hour-and-minute-and-second".

Returns:
`MeasureUnit`.
Stable:
ICU 68
UBool icu::number::FormattedNumber::nextPosition ( ConstrainedFieldPosition cfpos,
UErrorCode status 
) const [override, virtual]

Iterates over field positions in the FormattedValue.

This lets you determine the position of specific types of substrings, like a month or a decimal separator.

To loop over all field positions:

ConstrainedFieldPosition cfpos; while (fmtval.nextPosition(cfpos, status)) { // handle the field position; get information from cfpos }

Parameters:
cfposThe object used for iteration state. This can provide constraints to iterate over only one specific category or field; see ConstrainedFieldPosition::constrainCategory and ConstrainedFieldPosition::constrainField.
statusSet if an error occurs.
Returns:
true if a new occurrence of the field was found; false otherwise or if an error was set.
Stable:
ICU 64

Implements icu::FormattedValue.

FormattedNumber& icu::number::FormattedNumber::operator= ( const FormattedNumber )

Copying not supported; use move assignment instead.

FormattedNumber& icu::number::FormattedNumber::operator= ( FormattedNumber &&  src)

Move assignment: Leaves the source FormattedNumber in an undefined state.

Stable:
ICU 62
template<typename StringClass >
StringClass icu::number::FormattedNumber::toDecimalNumber ( UErrorCode status) const [inline]

Export the formatted number as a "numeric string" conforming to the syntax defined in the Decimal Arithmetic Specification, available at http://speleotrove.com/decimal.

This endpoint is useful for obtaining the exact number being printed after scaling and rounding have been applied by the number formatter.

Example call site:

auto decimalNumber = fn.toDecimalNumber<std::string>(status);

Template Parameters:
StringClassA string class compatible with StringByteSink; for example, std::string.
Parameters:
statusSet if an error occurs.
Returns:
A StringClass containing the numeric string.
Stable:
ICU 65

Definition at line 200 of file formattednumber.h.

UnicodeString icu::number::FormattedNumber::toString ( UErrorCode status) const [override, virtual]

Returns the formatted string as a self-contained UnicodeString.

For more information, see FormattedValue::toString()

Stable:
ICU 62

Implements icu::FormattedValue.

UnicodeString icu::number::FormattedNumber::toTempString ( UErrorCode status) const [override, virtual]

Returns the formatted string as a read-only alias to memory owned by the FormattedValue.

The return value is valid only as long as this FormattedValue is present and unchanged in memory. If you need the string outside the current scope, consider toString.

The buffer returned by calling UnicodeString::getBuffer() on the return value is guaranteed to be NUL-terminated.

Parameters:
statusSet if an error occurs.
Returns:
a temporary UnicodeString containing the formatted string.
Stable:
ICU 64

Implements icu::FormattedValue.


The documentation for this class was generated from the following file: