NumberFormatProvider (Java Platform SE 8 )
Keywords: java.text.spi.NumberFormatProvider class
Date: 2026-04-17

compact1, compact2, compact3
java.text.spi

## Class NumberFormatProvider

- java.lang.Object
- - java.util.spi.LocaleServiceProvider
  - - java.text.spi.NumberFormatProvider

-     public abstract class NumberFormatProvider
      extends LocaleServiceProvider

  An abstract class for service providers that provide concrete implementations of the `NumberFormat` class.
  Since:
    1.6

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `NumberFormatProvider()` Sole constructor.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract NumberFormat` | `getCurrencyInstance(Locale locale)` Returns a new `NumberFormat` instance which formats monetary values for the specified locale.
    `abstract NumberFormat` | `getIntegerInstance(Locale locale)` Returns a new `NumberFormat` instance which formats integer values for the specified locale.
    `abstract NumberFormat` | `getNumberInstance(Locale locale)` Returns a new general-purpose `NumberFormat` instance for the specified locale.
    `abstract NumberFormat` | `getPercentInstance(Locale locale)` Returns a new `NumberFormat` instance which formats percentage values for the specified locale.

    - ### Methods inherited from class java.util.spi.LocaleServiceProvider

      `getAvailableLocales, isSupportedLocale`

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

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

- - ### Constructor Detail

    - #### NumberFormatProvider

          protected NumberFormatProvider()

      Sole constructor. (For invocation by subclass constructors, typically implicit.)

  - ### Method Detail

    - #### getCurrencyInstance

          public abstract NumberFormat getCurrencyInstance(Locale locale)

      Returns a new `NumberFormat` instance which formats monetary values for the specified locale.
      Parameters:
        `locale` - the desired locale.
      Returns:
        a currency formatter
      Throws:
        `NullPointerException` - if `locale` is null
        `IllegalArgumentException` - if `locale` isn't one of the locales returned from `getAvailableLocales()`.
      See Also:
        `NumberFormat.getCurrencyInstance(java.util.Locale)`

    - #### getIntegerInstance

          public abstract NumberFormat getIntegerInstance(Locale locale)

      Returns a new `NumberFormat` instance which formats integer values for the specified locale. The returned number format is configured to round floating point numbers to the nearest integer using half-even rounding (see `HALF_EVEN`) for formatting, and to parse only the integer part of an input string (see `isParseIntegerOnly`).
      Parameters:
        `locale` - the desired locale
      Returns:
        a number format for integer values
      Throws:
        `NullPointerException` - if `locale` is null
        `IllegalArgumentException` - if `locale` isn't one of the locales returned from `getAvailableLocales()`.
      See Also:
        `NumberFormat.getIntegerInstance(java.util.Locale)`

    - #### getNumberInstance

          public abstract NumberFormat getNumberInstance(Locale locale)

      Returns a new general-purpose `NumberFormat` instance for the specified locale.
      Parameters:
        `locale` - the desired locale
      Returns:
        a general-purpose number formatter
      Throws:
        `NullPointerException` - if `locale` is null
        `IllegalArgumentException` - if `locale` isn't one of the locales returned from `getAvailableLocales()`.
      See Also:
        `NumberFormat.getNumberInstance(java.util.Locale)`

    - #### getPercentInstance

          public abstract NumberFormat getPercentInstance(Locale locale)

      Returns a new `NumberFormat` instance which formats percentage values for the specified locale.
      Parameters:
        `locale` - the desired locale
      Returns:
        a percent formatter
      Throws:
        `NullPointerException` - if `locale` is null
        `IllegalArgumentException` - if `locale` isn't one of the locales returned from `getAvailableLocales()`.
      See Also:
        `NumberFormat.getPercentInstance(java.util.Locale)`

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.