Class ScientificNumberFormatter


  • public final class ScientificNumberFormatter
    extends 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));
     
    • 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,
                                                                  String beginMarkup,
                                                                  String endMarkup)
        Gets a ScientificNumberFormatter instance that uses markup for exponents for this locale.
        Parameters:
        locale - The locale
        beginMarkup - 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,
                                                                  String beginMarkup,
                                                                  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 String format​(Object number)
        Formats a number
        Parameters:
        number - Can be a double, int, Number or anything that DecimalFormat#format(Object) accepts.
        Returns:
        the formatted string.