--- title: Intl.NumberFormat slug: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat tags: - Internacionalização - JavaScript - NumberFormat translation_of: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat ---
O objeto Intl.NumberFormat
é um construtor para objetos que habilita formatação de número sensível a linguagem.
{{EmbedInteractiveExample("pages/js/intl-numberformat.html")}}
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
new Intl.NumberFormat([locales[, options]])
Intl.NumberFormat.call(this[, locales[, options]])
locales
Opcional. Uma string com uma tag de linguagem BCP 47 ou uma matriz delas. Para a forma geral e interpretação do argumento locales
, veja {{jsxref("Intl", "Intl page", "#Locale_identification_and_negotiation", 1)}}. A seguinte chave extendida Unicode é permitida:
nu
"arab"
, "arabext"
, "bali"
, "beng"
, "deva"
, "fullwide"
, "gujr"
, "guru"
, "hanidec"
, "khmr"
, "knda"
, "laoo"
, "latn"
, "limb"
, "mlym"
, "mong"
, "mymr"
, "orya"
, "tamldec"
, "telu"
, "thai"
, "tibt"
.options
Opcional. Um objeto com alguns ou todas as seguintes propriedades:
localeMatcher
"lookup"
e "best fit"
; o padrão é "best fit"
. Para mais informações sobre esta opção, veja {{jsxref("Global_Objects/Intl", "Intl page", "#Locale_negotiation", 1)}}.style
"decimal"
para formato de número simples, "currency"
para formato monetário e "percent"
para formato percentual; o padrão é "decimal"
.currency
"USD"
para dólar estadunidense, "EUR"
para euro, ou "CNY"
para RMB chinês — veja a Lista de códigos de moedas e fundos atuais. Não há valor padrão; se o style
for "currency"
, a propriedade currency
deverá ser informada.currencyDisplay
"symbol"
para usar um símbolo de moeda localizado como €, "code"
para usar o código de moeda ISO, "name"
para usar o nome da moeda localizado como "dollar"
; o padrão é "symbol"
.useGrouping
true
e false
; o padrão é true
.As próximas propriedades se dividem em dois grupos: minimumIntegerDigits
, minimumFractionDigits
, e maximumFractionDigits
no primeiro grupo, minimumSignificantDigits
and maximumSignificantDigits
em outro. Se pelo menos uma propriedade do segundo grupo for informado, então o primeiro grupo é ignorado.
minimumIntegerDigits
minimumFractionDigits
maximumFractionDigits
minimumFractionDigits
e 3; o padrão para formatos monetários é o maior número de dígitos entre minimumFractionDigits
e o fornecido pela lista de códigos de moedas ISO 4217 (2 se a lista não fornecer a informação); o padrão para a formatação percentual é o maior número entre minimumFractionDigits
e 0.minimumSignificantDigits
maximumSignificantDigits
minimumSignificantDigits
.NumberFormat
As instâncias de NumberFormat
herdam as seguntes propriedades de seu protótipo:
As instâncias de NumberFormat
herdam os seguintes métodos de seu protótipo:
No uso básico sem a especificação de uma localização, o método retornará uma string formatada com a localização e as opções padrão.
var numero = 3500; console.log(new Intl.NumberFormat().format(numero)); // → '3,500' se a localização for U.S. English
locales
Este exemplo mostra algumas variações de formatos de números localizados. A fim de obter o formato da linguagem utilizada na interface do usuário da sua aplicação, tenha certeza de especificar a língua (e possivelmente algumas línguas reservas) usando o argumento locales
:
var numero = 123456.789; // O alemão usa vírgula como separador de decimal e ponto para milhares console.log(new Intl.NumberFormat('de-DE').format(numero)); // → 123.456,789 // O árabe usa dígitos reais árabes em muitos países que falam árabe console.log(new Intl.NumberFormat('ar-EG').format(numero)); // → ١٢٣٤٥٦٫٧٨٩ // A Índia usa separadores de milhares/cem mil/dez milhões console.log(new Intl.NumberFormat('en-IN').format(numero)); // → 1,23,456.789 // A chave de extensão nu requer um sistema de numeração, ex. decimal chinês console.log(new Intl.NumberFormat('zh-Hans-CN-u-nu-hanidec').format(numero)); // → 一二三,四五六.七八九 // Quando informada uma língua sem suporte, como balinês, // inclua uma língua reseva, neste caso indonésio console.log(new Intl.NumberFormat(['ban', 'id']).format(numero)); // → 123.456,789
options
Os resultados podem ser personalizados usando o argumento options
:
var numero = 123456.789; // informando um formato de moeda console.log(new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(numero)); // → 123.456,79 € // o yen japonês não tem uma unidade menor console.log(new Intl.NumberFormat('ja-JP', { style: 'currency', currency: 'JPY' }).format(numero)); // → ¥123,457 // limitando a três dígitos significativos console.log(new Intl.NumberFormat('en-IN', { maximumSignificantDigits: 3 }).format(numero)); // → 1,23,000
Especificação | Status | Comentário |
---|---|---|
{{SpecName('ES Int 1.0', '#sec-11.1', 'Intl.NumberFormat')}} | {{Spec2('ES Int 1.0')}} | Definição inicial. |
{{SpecName('ES Int 2.0', '#sec-11.1', 'Intl.NumberFormat')}} | {{Spec2('ES Int 2.0')}} | |
{{SpecName('ES Int Draft', '#numberformat-objects', 'Intl.NumberFormat')}} | {{Spec2('ES Int Draft')}} |
Característica | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Suporte básico | {{CompatChrome("24")}} | {{CompatGeckoDesktop("29")}} | {{CompatIE("11")}} | {{CompatOpera("15")}} | {{CompatNo}} |
Característica | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Suporte básico | {{CompatNo}} | {{CompatChrome("26")}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |