Class FastDoubleFormatter

java.lang.Object
org.orekit.utils.formatting.FastDoubleFormatter
Direct Known Subclasses:
FastDecimalFormatter, FastScientificFormatter

public abstract class FastDoubleFormatter extends Object
Formatter for double numbers with low overhead.

This class is intended to be used when formatting large amounts of data with fixed formats like, for example, large ephemeris or measurement files.

Building the formatter is done once, and the formatter appendTo(Appendable, double) or toString(double) methods can be called hundreds of thousands of times, without incurring the overhead that would occur with String.format(). Some tests showed this formatter is about 5 times faster than String.format() with %{width}.{%precision}f format.

Instances of this class are immutable

Since:
14.0
Author:
Luc Maisonobe
  • Constructor Details

    • FastDoubleFormatter

      protected FastDoubleFormatter(int width)
      Simple constructor.

      This constructor is equivalent to Formatter float format %{width}.{precision}f

      Parameters:
      width - number of characters to output
  • Method Details

    • getWidth

      public int getWidth()
      Get the width.
      Returns:
      width
    • appendTo

      public void appendTo(Appendable appendable, double value) throws IOException
      Append one formatted value to an Appendable.
      Parameters:
      appendable - to append value to
      value - value to format
      Throws:
      IOException - if an I/O error occurs
    • appendRegularValueTo

      protected abstract void appendRegularValueTo(Appendable appendable, double value) throws IOException
      Append one formatted value to an Appendable.
      Parameters:
      appendable - to append value to
      value - value to format
      Throws:
      IOException - if an I/O error occurs
    • toString

      public String toString(double value)
      Format one value.
      Parameters:
      value - value to format
      Returns:
      formatted string