--- 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]])
localesOpcional. 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".optionsOpcional. 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".useGroupingtrue 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.
minimumIntegerDigitsminimumFractionDigitsmaximumFractionDigitsminimumFractionDigits 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.minimumSignificantDigitsmaximumSignificantDigitsminimumSignificantDigits.NumberFormatAs 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
localesEste 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
optionsOs 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}} |