0Pricing
JavaScript Academy · Aula

Formatando números e moedas

Use Intl.NumberFormat para números de acordo com a localidade.

Formatando números e moedas é uma aula grátis de JavaScript Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de JavaScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de JavaScript Academy inclui 4 aulas no total.

O namespace Intl

Intl é a API integrada de internacionalização do JavaScript. Ela formata números, datas, moedas e muito mais de acordo com as convenções de uma localidade — sem precisar de uma biblioteca.

console.log(typeof Intl); // "object"
console.log(typeof Intl.NumberFormat); // "function"

Fundamentos de Intl.NumberFormat

Crie um formatador com uma localidade e depois chame format(). As localidades usam identificadores BCP 47, como "en-US" ou "de-DE".

const nf = new Intl.NumberFormat("en-US");
console.log(nf.format(1234567.89)); // "1,234,567.89"

Diferenças entre localidades

O mesmo número é exibido de forma diferente em cada localidade. O alemão usa pontos para separar milhares e vírgula para separar decimais.

const n = 1234567.89;
console.log(new Intl.NumberFormat("en-US").format(n)); // 1,234,567.89
console.log(new Intl.NumberFormat("de-DE").format(n)); // 1.234.567,89

Formatação de moedas

Passe style: "currency" e um código de currency. O símbolo e sua posição seguem a localidade.

const usd = new Intl.NumberFormat("en-US", { style: "currency", currency: "USD" });
console.log(usd.format(2999.5)); // "$2,999.50"

Moedas em diferentes localidades

A moeda permanece a mesma, mas sua apresentação se adapta à localidade escolhida.

const opts = { style: "currency", currency: "EUR" };
console.log(new Intl.NumberFormat("en-IE", opts).format(1000)); // €1,000.00
console.log(new Intl.NumberFormat("de-DE", opts).format(1000)); // 1.000,00 €

Estilo percentual

style: "percent" multiplica o valor por 100 e acrescenta o sinal de porcentagem da localidade.

const pct = new Intl.NumberFormat("en-US", { style: "percent" });
console.log(pct.format(0.1875)); // "19%"
console.log(new Intl.NumberFormat("en-US", { style: "percent", maximumFractionDigits: 2 }).format(0.1875)); // "18.75%"

Controlando casas decimais

minimumFractionDigits e maximumFractionDigits controlam as casas decimais.

const f = new Intl.NumberFormat("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
console.log(f.format(3));    // "3.00"
console.log(f.format(3.14159)); // "3.14"

Unidades

style: "unit" com uma unit formata medidas como quilômetros ou litros.

const speed = new Intl.NumberFormat("en-US", { style: "unit", unit: "kilometer-per-hour" });
console.log(speed.format(120)); // "120 km/h"

Notação compacta

notation: "compact" abrevia números grandes (1.2K, 3.4M) — ótimo para contagens em redes sociais.

const c = new Intl.NumberFormat("en-US", { notation: "compact" });
console.log(c.format(1500));    // "1.5K"
console.log(c.format(2300000)); // "2.3M"

Exibição do sinal

signDisplay: "always" exibe um sinal até mesmo para valores positivos — útil para variações e mudanças.

const s = new Intl.NumberFormat("en-US", { signDisplay: "always" });
console.log(s.format(5));  // "+5"
console.log(s.format(-5)); // "-5"

Reutilizando formatadores

Criar um formatador é relativamente caro. Crie-o uma vez e reutilize-o para vários valores, em vez de construir um novo a cada chamada.

const money = new Intl.NumberFormat("en-US", { style: "currency", currency: "USD" });
const prices = [9.99, 19.5, 100];
console.log(prices.map((p) => money.format(p)));

Verificação rápida

Teste a formatação de números.

Recapitulação: números e moedas

Você formatou números por localidade, trabalhou com moedas, porcentagens, unidades, notação compacta e exibição de sinais, controlou casas decimais e aprendeu a reutilizar formatadores. A seguir: datas e horas.

Perguntas Frequentes

A aula “Formatando números e moedas” é grátis?

Sim — o texto completo de “Formatando números e moedas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de JavaScript Academy, atualize para CoddyKit PRO. O curso de JavaScript Academy inclui 4 aulas no total.

O que vou aprender em “Formatando números e moedas”?

Use Intl.NumberFormat para números de acordo com a localidade. Você pratica JavaScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar JavaScript Academy?

Nenhuma experiência prévia é necessária. JavaScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Formatando números e moedas”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de JavaScript Academy?

Sim. Cada aula de JavaScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Formatando números e moedas
  2. Formatando datas e horários
  3. Tempo relativo e plurais
  4. Ordenação de acordo com a localidade
← Voltar para JavaScript Academy