Package com.ibm.icu.text
Class ScientificNumberFormatter
- java.lang.Object
-
- com.ibm.icu.text.ScientificNumberFormatter
-
public final class ScientificNumberFormatter extends java.lang.Object
A formatter that formats numbers in user-friendly scientific notation. ScientificNumberFormatter instances are immutable and thread-safe. Sample code:ULocale en = new ULocale("en"); ScientificNumberFormatter fmt = ScientificNumberFormatter.getMarkupInstance( en, "<sup>", "</sup>");
// Output: "1.23456×10<sup>-78</sup>" System.out.println(fmt.format(1.23456e-78));
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
ScientificNumberFormatter.MarkupStyle
private static class
ScientificNumberFormatter.Style
A style type for ScientificNumberFormatter.private static class
ScientificNumberFormatter.SuperscriptStyle
-
Field Summary
Fields Modifier and Type Field Description private DecimalFormat
fmt
private java.lang.String
preExponent
private ScientificNumberFormatter.Style
style
private static ScientificNumberFormatter.Style
SUPER_SCRIPT
-
Constructor Summary
Constructors Modifier Constructor Description private
ScientificNumberFormatter(DecimalFormat decimalFormat, java.lang.String preExponent, ScientificNumberFormatter.Style style)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
format(java.lang.Object number)
Formats a numberprivate static ScientificNumberFormatter
getInstance(DecimalFormat decimalFormat, ScientificNumberFormatter.Style style)
private static ScientificNumberFormatter
getInstanceForLocale(ULocale locale, ScientificNumberFormatter.Style style)
static ScientificNumberFormatter
getMarkupInstance(DecimalFormat df, java.lang.String beginMarkup, java.lang.String endMarkup)
Gets a ScientificNumberFormatter instance that uses markup for exponents.static ScientificNumberFormatter
getMarkupInstance(ULocale locale, java.lang.String beginMarkup, java.lang.String endMarkup)
Gets a ScientificNumberFormatter instance that uses markup for exponents for this locale.private static java.lang.String
getPreExponent(DecimalFormatSymbols dfs)
static ScientificNumberFormatter
getSuperscriptInstance(DecimalFormat df)
Gets a ScientificNumberFormatter instance that uses superscript characters for exponents.static ScientificNumberFormatter
getSuperscriptInstance(ULocale locale)
Gets a ScientificNumberFormatter instance that uses superscript characters for exponents for this locale.
-
-
-
Field Detail
-
preExponent
private final java.lang.String preExponent
-
fmt
private final DecimalFormat fmt
-
style
private final ScientificNumberFormatter.Style style
-
SUPER_SCRIPT
private static final ScientificNumberFormatter.Style SUPER_SCRIPT
-
-
Constructor Detail
-
ScientificNumberFormatter
private ScientificNumberFormatter(DecimalFormat decimalFormat, java.lang.String preExponent, ScientificNumberFormatter.Style style)
-
-
Method Detail
-
getSuperscriptInstance
public static ScientificNumberFormatter getSuperscriptInstance(ULocale locale)
Gets a ScientificNumberFormatter instance that uses superscript characters for exponents for this locale.- Parameters:
locale
- The locale- Returns:
- The ScientificNumberFormatter instance.
-
getSuperscriptInstance
public static ScientificNumberFormatter getSuperscriptInstance(DecimalFormat df)
Gets a ScientificNumberFormatter instance that uses superscript characters for exponents.- Parameters:
df
- The DecimalFormat must be configured for scientific notation. Caller may safely change df after this call as this method clones it when creating the ScientificNumberFormatter.- Returns:
- the ScientificNumberFormatter instance.
-
getMarkupInstance
public static ScientificNumberFormatter getMarkupInstance(ULocale locale, java.lang.String beginMarkup, java.lang.String endMarkup)
Gets a ScientificNumberFormatter instance that uses markup for exponents for this locale.- Parameters:
locale
- The localebeginMarkup
- the markup to start superscript e.g<sup>
endMarkup
- the markup to end superscript e.g</sup>
- Returns:
- The ScientificNumberFormatter instance.
-
getMarkupInstance
public static ScientificNumberFormatter getMarkupInstance(DecimalFormat df, java.lang.String beginMarkup, java.lang.String endMarkup)
Gets a ScientificNumberFormatter instance that uses markup for exponents.- Parameters:
df
- The DecimalFormat must be configured for scientific notation. Caller may safely change df after this call as this method clones it when creating the ScientificNumberFormatter.beginMarkup
- the markup to start superscript e.g<sup>
endMarkup
- the markup to end superscript e.g</sup>
- Returns:
- The ScientificNumberFormatter instance.
-
format
public java.lang.String format(java.lang.Object number)
Formats a number- Parameters:
number
- Can be a double, int, Number or anything that DecimalFormat#format(Object) accepts.- Returns:
- the formatted string.
-
getPreExponent
private static java.lang.String getPreExponent(DecimalFormatSymbols dfs)
-
getInstance
private static ScientificNumberFormatter getInstance(DecimalFormat decimalFormat, ScientificNumberFormatter.Style style)
-
getInstanceForLocale
private static ScientificNumberFormatter getInstanceForLocale(ULocale locale, ScientificNumberFormatter.Style style)
-
-