org.springframework.format.number

## Class CurrencyFormatter

- java.lang.Object
- - org.springframework.format.number.AbstractNumberFormatter
  - - org.springframework.format.number.CurrencyFormatter

- All Implemented Interfaces:
    Formatter<Number>, Parser<Number>, Printer<Number>

      public class CurrencyFormatter
      extends AbstractNumberFormatter

  A BigDecimal formatter for currency values.

  Delegates to `NumberFormat.getCurrencyInstance(Locale)`. Configures BigDecimal parsing so there is no loss of precision. Can apply a specified `RoundingMode` to parsed values.

  Since:
    3.0
  Author:
    Keith Donald, Juergen Hoeller
  See Also:
    `AbstractNumberFormatter.setLenient(boolean)`, `setRoundingMode(java.math.RoundingMode)`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `CurrencyFormatter()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected NumberFormat` | `getNumberFormat(Locale locale)` Obtain a concrete NumberFormat for the specified locale.
    `BigDecimal` | `parse(String text, Locale locale)` Parse a text String to produce a T.
    `void` | `setCurrency(Currency currency)` Specify the currency, if known.
    `void` | `setFractionDigits(int fractionDigits)` Specify the desired number of fraction digits.
    `void` | `setRoundingMode(RoundingMode roundingMode)` Specify the rounding mode to use for decimal parsing.

    - ### Methods inherited from class org.springframework.format.number.AbstractNumberFormatter

      `print, setLenient`

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### CurrencyFormatter

          public CurrencyFormatter()

  - ### Method Detail

    - #### setFractionDigits

          public void setFractionDigits(int fractionDigits)

      Specify the desired number of fraction digits. Default is 2.

    - #### setRoundingMode

          public void setRoundingMode(RoundingMode roundingMode)

      Specify the rounding mode to use for decimal parsing. Default is `RoundingMode.UNNECESSARY`.

    - #### setCurrency

          public void setCurrency(Currency currency)

      Specify the currency, if known.

    - #### parse

          public BigDecimal parse(String text,
                         Locale locale)
                           throws ParseException

      Description copied from interface: `Parser`
      Parse a text String to produce a T.
      Specified by:
        `parse` in interface `Parser<Number>`
      Overrides:
        `parse` in class `AbstractNumberFormatter`
      Parameters:
        `text` - the text string
        `locale` - the current user locale
      Returns:
        an instance of T
      Throws:
        `ParseException` - when a parse exception occurs in a java.text parsing library

    - #### getNumberFormat

          protected NumberFormat getNumberFormat(Locale locale)

      Description copied from class: `AbstractNumberFormatter`
      Obtain a concrete NumberFormat for the specified locale.
      Specified by:
        `getNumberFormat` in class `AbstractNumberFormatter`
      Parameters:
        `locale` - the current locale
      Returns:
        the NumberFormat instance (never `null`)