Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: source/i18n/unicode/scientificformathelper.h

Issue 1621843002: ICU 56 update step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@561
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « source/i18n/unicode/reldatefmt.h ('k') | source/i18n/unicode/scientificnumberformatter.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 **********************************************************************
3 * Copyright (c) 2014, International Business Machines
4 * Corporation and others. All Rights Reserved.
5 **********************************************************************
6 */
7 #ifndef SCIFORMATHELPER_H
8 #define SCIFORMATHELPER_H
9
10 #include "unicode/utypes.h"
11
12 #if !UCONFIG_NO_FORMATTING
13
14 #ifndef U_HIDE_DRAFT_API
15
16 #include "unicode/unistr.h"
17
18 /**
19 * \file
20 * \brief C++ API: Formatter for measure objects.
21 */
22
23 U_NAMESPACE_BEGIN
24
25 class DecimalFormatSymbols;
26 class FieldPositionIterator;
27 class DecimalFormatStaticSets;
28
29 /**
30 * A helper class for formatting numbers in standard scientific notation
31 * instead of E notation.
32 *
33 * Sample code:
34 * <pre>
35 * UErrorCode status = U_ZERO_ERROR;
36 * DecimalFormat *decfmt = (DecimalFormat *)
37 * NumberFormat::createScientificInstance("en", status);
38 * UnicodeString appendTo;
39 * FieldPositionIterator fpositer;
40 * decfmt->format(1.23456e-78, appendTo, &fpositer, status);
41 * ScientificFormatHelper helper(*decfmt->getDecimalFormatSymbols(), status);
42 * UnicodeString result;
43 *
44 * // result = "1.23456x10<sup>-78</sup>"
45 * helper.insertMarkup(appendTo, fpositer, "<sup>", "</sup>", result, status));
46 * </pre>
47 *
48 * @see NumberFormat
49 * @draft ICU 54
50 */
51 class U_I18N_API ScientificFormatHelper : public UObject {
52 public:
53 /**
54 * Constructor.
55 * @param symbols comes from DecimalFormat instance used for default
56 * scientific notation.
57 * @param status any error reported here.
58 * @draft ICU 54
59 */
60 ScientificFormatHelper(const DecimalFormatSymbols &symbols, UErrorCode& stat us);
61
62 /**
63 * Copy constructor.
64 * @draft ICU 54
65 */
66 ScientificFormatHelper(const ScientificFormatHelper &other);
67
68 /**
69 * Assignment operator.
70 * @draft ICU 54
71 */
72 ScientificFormatHelper &operator=(const ScientificFormatHelper &other);
73
74 /**
75 * Destructor.
76 * @draft ICU 54
77 */
78 virtual ~ScientificFormatHelper();
79
80 /**
81 * Formats standard scientific notation by surrounding exponent with
82 * html to make it superscript.
83 * @param s the original formatted scientific notation
84 * e.g "6.02e23". s is output from
85 * NumberFormat::createScientificInstance()->format().
86 * @param fpi the FieldPositionIterator from the format call.
87 * fpi is output from
88 * NumberFormat::createScientificInstance()->format().
89 * @param beginMarkup the start html for the exponent e.g "<sup>"
90 * @param endMarkup the end html for the exponent e.g "</sup>"
91 * @param result standard scientific notation appended here.
92 * @param status any error returned here. When status is set to a
93 * non-zero error, the value of result is unspecified,
94 * and client should fallback to using s for scientific
95 * notation.
96 * @return the value stored in result.
97 * @draft ICU 54
98 */
99 UnicodeString &insertMarkup(
100 const UnicodeString &s,
101 FieldPositionIterator &fpi,
102 const UnicodeString &beginMarkup,
103 const UnicodeString &endMarkup,
104 UnicodeString &result,
105 UErrorCode &status) const;
106
107 /**
108 * Formats standard scientific notation by using superscript unicode
109 * points 0..9.
110 * @param s the original formatted scientific notation
111 * e.g "6.02e23". s is output from
112 * NumberFormat::createScientificInstance()->format().
113 * @param fpi the FieldPositionIterator from the format call.
114 * fpi is output from
115 * NumberFormat::createScientificInstance()->format().
116 * @param result standard scientific notation appended here.
117 * @param status any error returned here. When status is set to a
118 * non-zero error, the value of result is unspecified,
119 * and client should fallback to using s for scientific
120 * notation.
121 * @return the value stored in result.
122 * @draft ICU 54
123 */
124 UnicodeString &toSuperscriptExponentDigits(
125 const UnicodeString &s,
126 FieldPositionIterator &fpi,
127 UnicodeString &result,
128 UErrorCode &status) const;
129 private:
130 UnicodeString fPreExponent;
131 const DecimalFormatStaticSets *fStaticSets;
132 };
133
134 U_NAMESPACE_END
135
136 #endif /* U_HIDE_DRAFT_API */
137
138 #endif /* !UCONFIG_NO_FORMATTING */
139 #endif
OLDNEW
« no previous file with comments | « source/i18n/unicode/reldatefmt.h ('k') | source/i18n/unicode/scientificnumberformatter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698