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
`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`)