Package org.springframework.format.number

# Class CurrencyStyleFormatter

java.lang.Object
org.springframework.format.number.AbstractNumberFormatter
org.springframework.format.number.CurrencyStyleFormatter

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

public class CurrencyStyleFormatter extends AbstractNumberFormatter
A BigDecimal formatter for number values in currency style.

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

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

## Constructor Summary

Constructors
Constructor
Description
`CurrencyStyleFormatter()`

## Method Summary

Modifier and Type
Method
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`
`setPattern(String pattern)`
Specify the pattern to use to format number values.
`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 Details

### CurrencyStyleFormatter

public CurrencyStyleFormatter()

## Method Details

### 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.

### setPattern

public void setPattern(String pattern)
Specify the pattern to use to format number values. If not specified, the default DecimalFormat pattern is used.

See Also:
  - `DecimalFormat.applyPattern(String)`

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