ICU 57.1 57.1
compactdecimalformat.h
Go to the documentation of this file.
1/*
2********************************************************************************
3* Copyright (C) 2012-2016, International Business Machines
4* Corporation and others. All Rights Reserved.
5********************************************************************************
6*
7* File COMPACTDECIMALFORMAT.H
8********************************************************************************
9*/
10
11#ifndef __COMPACT_DECIMAL_FORMAT_H__
12#define __COMPACT_DECIMAL_FORMAT_H__
13
14#include "unicode/utypes.h"
20#if !UCONFIG_NO_FORMATTING
21
22#include "unicode/decimfmt.h"
23
24struct UHashtable;
25
27
28class PluralRules;
29
53public:
54
63 const Locale& inLocale, UNumberCompactStyle style, UErrorCode& status);
64
72
78
86
94 virtual Format* clone() const;
95
104 virtual UBool operator==(const Format& other) const;
105
106
108
120 virtual UnicodeString& format(double number,
121 UnicodeString& appendTo,
122 FieldPosition& pos) const;
123
136 virtual UnicodeString& format(double number,
137 UnicodeString& appendTo,
138 FieldPosition& pos,
139 UErrorCode &status) const;
140
155 virtual UnicodeString& format(double number,
156 UnicodeString& appendTo,
157 FieldPositionIterator* posIter,
158 UErrorCode& status) const;
159
160 /* Cannot use #ifndef U_HIDE_DRAFT_API for the following draft method since it is virtual. */
172 virtual UnicodeString& format(int32_t number,
173 UnicodeString& appendTo,
174 FieldPosition& pos) const;
175
187 virtual UnicodeString& format(int32_t number,
188 UnicodeString& appendTo,
189 FieldPosition& pos,
190 UErrorCode &status) const;
191
206 virtual UnicodeString& format(int32_t number,
207 UnicodeString& appendTo,
208 FieldPositionIterator* posIter,
209 UErrorCode& status) const;
210
222 virtual UnicodeString& format(int64_t number,
223 UnicodeString& appendTo,
224 FieldPosition& pos) const;
225
237 virtual UnicodeString& format(int64_t number,
238 UnicodeString& appendTo,
239 FieldPosition& pos,
240 UErrorCode &status) const;
241
256 virtual UnicodeString& format(int64_t number,
257 UnicodeString& appendTo,
258 FieldPositionIterator* posIter,
259 UErrorCode& status) const;
260
277 virtual UnicodeString& format(const StringPiece &number,
278 UnicodeString& appendTo,
279 FieldPositionIterator* posIter,
280 UErrorCode& status) const;
281
297 virtual UnicodeString& format(const DigitList &number,
298 UnicodeString& appendTo,
299 FieldPositionIterator* posIter,
300 UErrorCode& status) const;
301
317 virtual UnicodeString& format(const DigitList &number,
318 UnicodeString& appendTo,
319 FieldPosition& pos,
320 UErrorCode& status) const;
321
331 virtual void parse(const UnicodeString& text,
332 Formattable& result,
333 ParsePosition& parsePosition) const;
334
344 virtual void parse(const UnicodeString& text,
345 Formattable& result,
346 UErrorCode& status) const;
347
369 ParsePosition& pos) const;
370
382 static UClassID U_EXPORT2 getStaticClassID();
383
396
397private:
398
399 const UHashtable* _unitsByVariant;
400 const double* _divisors;
401 PluralRules* _pluralRules;
402
403 // Default constructor not implemented.
404 CompactDecimalFormat(const DecimalFormat &, const UHashtable* unitsByVariant, const double* divisors, PluralRules* pluralRules);
405
406 UBool eqHelper(const CompactDecimalFormat& that) const;
407};
408
410
411#endif /* #if !UCONFIG_NO_FORMATTING */
412
413#endif // __COMPACT_DECIMAL_FORMAT_H__
414//eof
The CompactDecimalFormat produces abbreviated numbers, suitable for display in environments will limi...
virtual UnicodeString & format(double number, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const
Format a double or long number using base-10 representation.
virtual UnicodeString & format(int64_t number, UnicodeString &appendTo, FieldPosition &pos, UErrorCode &status) const
Format an int64 number using base-10 representation.
virtual UnicodeString & format(double number, UnicodeString &appendTo, FieldPosition &pos, UErrorCode &status) const
Format a double or long number using base-10 representation.
virtual UnicodeString & format(int32_t number, UnicodeString &appendTo, FieldPosition &pos, UErrorCode &status) const
Format a long number using base-10 representation.
virtual UClassID getDynamicClassID() const
Returns a unique class ID POLYMORPHICALLY.
static UClassID getStaticClassID()
Return the class ID for this class.
virtual UnicodeString & format(int64_t number, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const
Format an int64 number using base-10 representation.
virtual UnicodeString & format(const DigitList &number, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const
Format a decimal number.
virtual UnicodeString & format(const StringPiece &number, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const
Format a decimal number.
virtual UnicodeString & format(int32_t number, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const
Format a long number using base-10 representation.
virtual UBool operator==(const Format &other) const
Return TRUE if the given Format objects are semantically equal.
virtual Format * clone() const
Clone this Format object polymorphically.
CompactDecimalFormat(const CompactDecimalFormat &source)
Copy constructor.
virtual void parse(const UnicodeString &text, Formattable &result, ParsePosition &parsePosition) const
CompactDecimalFormat does not support parsing.
static CompactDecimalFormat * createInstance(const Locale &inLocale, UNumberCompactStyle style, UErrorCode &status)
Returns a compact decimal instance for specified locale.
virtual void parse(const UnicodeString &text, Formattable &result, UErrorCode &status) const
CompactDecimalFormat does not support parsing.
virtual UnicodeString & format(int32_t number, UnicodeString &appendTo, FieldPosition &pos) const
Format a long number using base-10 representation.
virtual UnicodeString & format(const DigitList &number, UnicodeString &appendTo, FieldPosition &pos, UErrorCode &status) const
Format a decimal number.
virtual ~CompactDecimalFormat()
Destructor.
virtual UnicodeString & format(int64_t number, UnicodeString &appendTo, FieldPosition &pos) const
Format an int64 number using base-10 representation.
CompactDecimalFormat & operator=(const CompactDecimalFormat &rhs)
Assignment operator.
virtual CurrencyAmount * parseCurrency(const UnicodeString &text, ParsePosition &pos) const
Parses text from the given string as a currency amount.
virtual UnicodeString & format(double number, UnicodeString &appendTo, FieldPosition &pos) const
Format a double or long number using base-10 representation.
A currency together with a numeric amount, such as 200 USD.
Definition: curramt.h:35
DecimalFormat is a concrete subclass of NumberFormat that formats decimal numbers.
Definition: decimfmt.h:667
virtual UnicodeString & format(double number, UnicodeString &appendTo, FieldPosition &pos) const
Format a double or long number using base-10 representation.
FieldPositionIterator returns the field ids and their start/limit positions generated by a call to Fo...
Definition: fpositer.h:53
FieldPosition is a simple class used by Format and its subclasses to identify fields in formatted out...
Definition: fieldpos.h:106
Base class for all formats.
Definition: format.h:94
Formattable objects can be passed to the Format class or its subclasses for formatting.
Definition: fmtable.h:66
A Locale object represents a specific geographical, political, or cultural region.
Definition: locid.h:185
ParsePosition is a simple class used by Format and its subclasses to keep track of the current positi...
Definition: parsepos.h:47
Defines rules for mapping non-negative numeric values onto a small set of keywords.
Definition: plurrule.h:192
A string-like object that points to a sized piece of memory.
Definition: stringpiece.h:52
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:294
C++ API: Formats decimal numbers.
int8_t UBool
The ICU boolean type.
Definition: umachine.h:234
UNumberCompactStyle
Constants for specifying short or long format.
Definition: unum.h:307
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Definition: uobject.h:91
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers,...
Definition: utypes.h:476
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside.
Definition: utypes.h:358
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition: uversion.h:130
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:129