ICU 65.1 65.1

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

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

`#include <numberformatter.h>`

Inheritance diagram for icu::number::FormattedNumber:

## Public Member Functions
| FormattedNumber ()
| Default constructor; makes an empty FormattedNumber. More...
| FormattedNumber (FormattedNumber &&src) U_NOEXCEPT
| Move constructor: Leaves the source FormattedNumber in an undefined state. More...
virtual | ~FormattedNumber () U_OVERRIDE
| Destruct an instance of FormattedNumber. More...
| FormattedNumber (const FormattedNumber &)=delete
| Copying not supported; use move constructor instead. More...
FormattedNumber & | operator= (const FormattedNumber &)=delete
| Copying not supported; use move assignment instead. More...
FormattedNumber & | operator= (FormattedNumber &&src) U_NOEXCEPT
| Move assignment: Leaves the source FormattedNumber in an undefined state. More...
UnicodeString | toString (UErrorCode &status) const U_OVERRIDE
| Returns the formatted string as a self-contained UnicodeString. More...
UnicodeString | toTempString (UErrorCode &status) const U_OVERRIDE
| Returns the formatted string as a read-only alias to memory owned by the FormattedValue. More...
Appendable & | appendTo (Appendable &appendable, UErrorCode &status) const U_OVERRIDE
| Appends the formatted string to an Appendable. More...
UBool | nextPosition (ConstrainedFieldPosition &cfpos, UErrorCode &status) const U_OVERRIDE
| Iterates over field positions in the FormattedValue. More...
UBool | nextFieldPosition (FieldPosition &fieldPosition, UErrorCode &status) const
| Determines the start (inclusive) and end (exclusive) indices of the next occurrence of the given field in the output string. More...
void | getAllFieldPositions (FieldPositionIterator &iterator, UErrorCode &status) const
| Export the formatted number to a FieldPositionIterator. More...
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. More...
void | getDecimalQuantity (impl::DecimalQuantity &output, UErrorCode &status) const
| Gets the raw DecimalQuantity for plural rule selection. More...
void | getAllFieldPositionsImpl (FieldPositionIteratorHandler &fpih, UErrorCode &status) const
| Populates the mutable builder type FieldPositionIteratorHandler. More...
Public Member Functions inherited from icu::FormattedValue
virtual | ~FormattedValue ()

## Friends
class | LocalizedNumberFormatter
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 2410 of file numberformatter.h.

## Constructor & Destructor Documentation

## ◆ FormattedNumber() [1/3]

icu::number::FormattedNumber::FormattedNumber | ( |  | ) |
| inline

Default constructor; makes an empty FormattedNumber.

Draft:
  This API may be changed in the future versions and was introduced in ICU 64

Definition at line 2419 of file numberformatter.h.

References U_NOEXCEPT, U_OVERRIDE, and U_ZERO_ERROR.

## ◆ FormattedNumber() [2/3]

icu::number::FormattedNumber::FormattedNumber | ( | FormattedNumber && | src | ) |

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

Stable:
  ICU 62

## ◆ ~FormattedNumber()

virtual icu::number::FormattedNumber::~FormattedNumber | ( |  | ) |
| virtual

Destruct an instance of FormattedNumber.

Stable:
  ICU 60

## ◆ FormattedNumber() [3/3]

icu::number::FormattedNumber::FormattedNumber | ( | const FormattedNumber & |  | ) |
| delete

Copying not supported; use move constructor instead.

## Member Function Documentation

## ◆ appendTo()

Appendable& icu::number::FormattedNumber::appendTo | ( | Appendable & | appendable,
|  | UErrorCode & | status
| ) |  | const
| virtual

Appends the formatted string to an Appendable.

For more information, see FormattedValue::appendTo()

Stable:
  ICU 62

Implements icu::FormattedValue.

## ◆ getAllFieldPositions()

void icu::number::FormattedNumber::getAllFieldPositions | ( | FieldPositionIterator & | iterator,
|  | UErrorCode & | status
| ) |  | const

Export the formatted number to a FieldPositionIterator.

This allows you to determine which characters in the output string correspond to which fields, such as the integer part, fraction part, and sign.

This is an alternative to the more powerful nextPosition() API.

If information on only one field is needed, use nextPosition() or nextFieldPosition() instead.

Parameters

  iterator | The FieldPositionIterator to populate with all of the fields present in the formatted number.
  status | Set if an error occurs while populating the FieldPositionIterator.

Draft:
  This API may be changed in the future versions and was introduced in ICU 62

See also
  UNumberFormatFields

## ◆ getAllFieldPositionsImpl()

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.

## ◆ getDecimalQuantity()

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.

## ◆ nextFieldPosition()

UBool icu::number::FormattedNumber::nextFieldPosition | ( | FieldPosition & | fieldPosition,
|  | UErrorCode & | status
| ) |  | const

Determines the start (inclusive) and end (exclusive) indices of the next occurrence of the given field in the output string.

This allows you to determine the locations of, for example, the integer part, fraction part, or symbols.

This is a simpler but less powerful alternative to nextPosition.

If a field occurs just once, calling this method will find that occurrence and return it. If a field occurs multiple times, this method may be called repeatedly with the following pattern:

    FieldPosition fpos(UNUM_GROUPING_SEPARATOR_FIELD);
    while (formattedNumber.nextFieldPosition(fpos, status)) {
      // do something with fpos.
    }

This method is useful if you know which field to query. If you want all available field position information, use nextPosition or getAllFieldPositions.

Parameters

  fieldPosition | Input+output variable. On input, the "field" property determines which field to look up, and the "beginIndex" and "endIndex" properties determine where to begin the search. On output, the "beginIndex" is set to the beginning of the first occurrence of the field with either begin or end indices after the input indices; "endIndex" is set to the end of that occurrence of the field (exclusive index). If a field position is not found, the method returns FALSE and the FieldPosition may or may not be changed.
  status | Set if an error occurs while populating the FieldPosition.

Returns
  TRUE if a new occurrence of the field was found; FALSE otherwise.

Draft:
  This API may be changed in the future versions and was introduced in ICU 62

See also
  UNumberFormatFields

## ◆ nextPosition()

UBool icu::number::FormattedNumber::nextPosition | ( | ConstrainedFieldPosition & | cfpos,
|  | UErrorCode & | status
| ) |  | const
| 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

  cfpos | The object used for iteration state. This can provide constraints to iterate over only one specific category or field; see ConstrainedFieldPosition::constrainCategory and ConstrainedFieldPosition::constrainField.
  status | Set if an error occurs.

Returns
  TRUE if a new occurrence of the field was found; FALSE otherwise or if an error was set.

Draft:
  This API may be changed in the future versions and was introduced in ICU 64

Implements icu::FormattedValue.

## ◆ operator=() [1/2]

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

Copying not supported; use move assignment instead.

## ◆ operator=() [2/2]

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

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

Stable:
  ICU 62

## ◆ toDecimalNumber()

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

  StringClass | A string class compatible with StringByteSink; for example, std::string.

Parameters

  status | Set if an error occurs.

Returns
  A StringClass containing the numeric string.

Draft:
  This API may be changed in the future versions and was introduced in ICU 65

Definition at line 2598 of file numberformatter.h.

## ◆ toString()

UnicodeString icu::number::FormattedNumber::toString | ( | UErrorCode & | status | ) | const
| virtual

Returns the formatted string as a self-contained UnicodeString.

For more information, see FormattedValue::toString()

Stable:
  ICU 62

Implements icu::FormattedValue.

## ◆ toTempString()

UnicodeString icu::number::FormattedNumber::toTempString | ( | UErrorCode & | status | ) | const
| 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

  status | Set if an error occurs.

Returns
  a temporary UnicodeString containing the formatted string.

Draft:
  This API may be changed in the future versions and was introduced in ICU 64

Implements icu::FormattedValue.

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

- numberformatter.h