org.apache.commons.math3.fraction

## Class FractionFormat

- java.lang.Object
- - java.text.Format
  - - java.text.NumberFormat
    - - org.apache.commons.math3.fraction.AbstractFormat
      - - org.apache.commons.math3.fraction.FractionFormat

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable

Direct Known Subclasses:
  ProperFractionFormat

    public class FractionFormat
    extends AbstractFormat

Formats a Fraction number in proper format or improper format. The number format for each of the whole number, numerator and, denominator can be configured.

Since:
  1.1
Version:
  $Id: FractionFormat.java 1416643 2012-12-03 19:37:14Z tn $
See Also:
  Serialized Form

### Nested Class Summary

### Nested classes/interfaces inherited from class java.text.NumberFormat

`java.text.NumberFormat.Field`

### Field Summary

Fields
`private static long` `serialVersionUID` Serializable version identifier

### Fields inherited from class java.text.NumberFormat

`FRACTION_FIELD, INTEGER_FIELD`

### Constructor Summary

Constructors
Constructor and Description
`FractionFormat()` Create an improper formatting instance with the default number format for the numerator and denominator.
`FractionFormat(java.text.NumberFormat format)` Create an improper formatting instance with a custom number format for both the numerator and denominator.
`FractionFormat(java.text.NumberFormat numeratorFormat, java.text.NumberFormat denominatorFormat)` Create an improper formatting instance with a custom number format for the numerator and a custom number format for the denominator.

### Method Summary

Methods
`java.lang.StringBuffer` `format(Fraction fraction, java.lang.StringBuffer toAppendTo, java.text.FieldPosition pos)` Formats a `Fraction` object to produce a string.
`java.lang.StringBuffer` `format(java.lang.Object obj, java.lang.StringBuffer toAppendTo, java.text.FieldPosition pos)` Formats an object and appends the result to a StringBuffer.
`static java.lang.String` `formatFraction(Fraction f)` This static method calls formatFraction() on a default instance of FractionFormat.
`static java.util.Locale[]` `getAvailableLocales()` Get the set of locales for which complex formats are available.
`protected static java.text.NumberFormat` `getDefaultNumberFormat()` Create a default number format.
`static FractionFormat` `getImproperInstance()` Returns the default complex format for the current locale.
`static FractionFormat` `getImproperInstance(java.util.Locale locale)` Returns the default complex format for the given locale.
`static FractionFormat` `getProperInstance()` Returns the default complex format for the current locale.
`static FractionFormat` `getProperInstance(java.util.Locale locale)` Returns the default complex format for the given locale.
`Fraction` `parse(java.lang.String source)` Parses a string to produce a `Fraction` object.
`Fraction` `parse(java.lang.String source, java.text.ParsePosition pos)` Parses a string to produce a `Fraction` object.

### Methods inherited from class org.apache.commons.math3.fraction.AbstractFormat

`format, format, getDefaultNumberFormat, getDenominatorFormat, getNumeratorFormat, parseAndIgnoreWhitespace, parseNextCharacter, setDenominatorFormat, setNumeratorFormat`

### Methods inherited from class java.text.NumberFormat

`clone, equals, format, format, getCurrency, getCurrencyInstance, getCurrencyInstance, getInstance, getInstance, getIntegerInstance, getIntegerInstance, getMaximumFractionDigits, getMaximumIntegerDigits, getMinimumFractionDigits, getMinimumIntegerDigits, getNumberInstance, getNumberInstance, getPercentInstance, getPercentInstance, getRoundingMode, hashCode, isGroupingUsed, isParseIntegerOnly, parseObject, setCurrency, setGroupingUsed, setMaximumFractionDigits, setMaximumIntegerDigits, setMinimumFractionDigits, setMinimumIntegerDigits, setParseIntegerOnly, setRoundingMode`

### Methods inherited from class java.text.Format

`format, formatToCharacterIterator, parseObject`

### Methods inherited from class java.lang.Object

`finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### serialVersionUID

    private static final long serialVersionUID

Serializable version identifier

See Also:
  Constant Field Values

### Constructor Detail

#### FractionFormat

    public FractionFormat()

Create an improper formatting instance with the default number format for the numerator and denominator.

#### FractionFormat

    public FractionFormat(java.text.NumberFormat format)

Create an improper formatting instance with a custom number format for both the numerator and denominator.

Parameters:
  `format` - the custom format for both the numerator and denominator.

#### FractionFormat

    public FractionFormat(java.text.NumberFormat numeratorFormat,
                  java.text.NumberFormat denominatorFormat)

Create an improper formatting instance with a custom number format for the numerator and a custom number format for the denominator.

Parameters:
  `numeratorFormat` - the custom format for the numerator.
  `denominatorFormat` - the custom format for the denominator.

### Method Detail

#### getAvailableLocales

    public static java.util.Locale[] getAvailableLocales()

Get the set of locales for which complex formats are available. This is the same set as the `NumberFormat` set.

Returns:
  available complex format locales.

#### formatFraction

    public static java.lang.String formatFraction(Fraction f)

This static method calls formatFraction() on a default instance of FractionFormat.

Parameters:
  `f` - Fraction object to format
Returns:
  a formatted fraction in proper form.

#### getImproperInstance

    public static FractionFormat getImproperInstance()

Returns the default complex format for the current locale.

Returns:
  the default complex format.

#### getImproperInstance

    public static FractionFormat getImproperInstance(java.util.Locale locale)

Returns the default complex format for the given locale.

Parameters:
  `locale` - the specific locale used by the format.
Returns:
  the complex format specific to the given locale.

#### getProperInstance

    public static FractionFormat getProperInstance()

Returns the default complex format for the current locale.

Returns:
  the default complex format.

#### getProperInstance

    public static FractionFormat getProperInstance(java.util.Locale locale)

Returns the default complex format for the given locale.

Parameters:
  `locale` - the specific locale used by the format.
Returns:
  the complex format specific to the given locale.

#### getDefaultNumberFormat

    protected static java.text.NumberFormat getDefaultNumberFormat()

Create a default number format. The default number format is based on `NumberFormat.getNumberInstance(java.util.Locale)` with the only customizing is the maximum number of fraction digits, which is set to 0.

Returns:
  the default number format.

#### format

    public java.lang.StringBuffer format(Fraction fraction,
                                java.lang.StringBuffer toAppendTo,
                                java.text.FieldPosition pos)

Formats a `Fraction` object to produce a string. The fraction is output in improper format.

Parameters:
  `fraction` - the object to format.
  `toAppendTo` - where the text is to be appended
  `pos` - On input: an alignment field, if desired. On output: the offsets of the alignment field
Returns:
  the value passed in as toAppendTo.

#### format

    public java.lang.StringBuffer format(java.lang.Object obj,
                                java.lang.StringBuffer toAppendTo,
                                java.text.FieldPosition pos)
                                  throws FractionConversionException,
                                         MathIllegalArgumentException

Formats an object and appends the result to a StringBuffer. `obj` must be either a `Fraction` object or a `Number` object. Any other type of object will result in an `IllegalArgumentException` being thrown.

Overrides:
  `format` in class `java.text.NumberFormat`
Parameters:
  `obj` - the object to format.
  `toAppendTo` - where the text is to be appended
  `pos` - On input: an alignment field, if desired. On output: the offsets of the alignment field
Returns:
  the value passed in as toAppendTo.
Throws:
  `FractionConversionException` - if the number cannot be converted to a fraction
  `MathIllegalArgumentException` - if `obj` is not a valid type.
See Also:
  `Format.format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition)`

#### parse

    public Fraction parse(java.lang.String source)
                   throws MathParseException

Parses a string to produce a `Fraction` object.

Overrides:
  `parse` in class `java.text.NumberFormat`
Parameters:
  `source` - the string to parse
Returns:
  the parsed `Fraction` object.
Throws:
  `MathParseException` - if the beginning of the specified string cannot be parsed.

#### parse

    public Fraction parse(java.lang.String source,
                 java.text.ParsePosition pos)

Parses a string to produce a `Fraction` object. This method expects the string to be formatted as an improper fraction.

Specified by:
  `parse` in class `java.text.NumberFormat`
Parameters:
  `source` - the string to parse
  `pos` - input/output parsing parameter.
Returns:
  the parsed `Fraction` object.