9 #ifndef SCINUMBERFORMATTER_H
10 #define SCINUMBERFORMATTER_H
14 #if U_SHOW_CPLUSPLUS_API
16 #if !UCONFIG_NO_FORMATTING
28 class FieldPositionIterator;
29 class DecimalFormatSymbols;
148 virtual Style *clone()
const = 0;
160 class U_I18N_API SuperscriptStyle :
public Style {
162 virtual SuperscriptStyle *clone()
const override;
164 virtual UnicodeString &format(
165 const UnicodeString &original,
166 FieldPositionIterator &fpi,
167 const UnicodeString &preExponent,
168 UnicodeString &appendTo,
175 const UnicodeString &beginMarkup,
176 const UnicodeString &endMarkup)
178 fBeginMarkup(beginMarkup),
179 fEndMarkup(endMarkup) { }
180 virtual MarkupStyle *clone()
const override;
182 virtual UnicodeString &format(
183 const UnicodeString &original,
184 FieldPositionIterator &fpi,
185 const UnicodeString &preExponent,
186 UnicodeString &appendTo,
189 UnicodeString fBeginMarkup;
190 UnicodeString fEndMarkup;
193 ScientificNumberFormatter(
194 DecimalFormat *fmtToAdopt,
198 ScientificNumberFormatter(
const ScientificNumberFormatter &other);
199 ScientificNumberFormatter &operator=(
const ScientificNumberFormatter &) =
delete;
201 static void getPreExponent(
202 const DecimalFormatSymbols &dfs, UnicodeString &preExponent);
204 static ScientificNumberFormatter *createInstance(
205 DecimalFormat *fmtToAdopt,
209 UnicodeString fPreExponent;
210 DecimalFormat *fDecimalFormat;