Pular para o conteúdo
React

Como criar um Helper universal para formatar moedas em React

Transforme centavos em reais BRL usando um único utilitário, limpe seu código e reforce padrões de qualidade para qualquer tela do seu projeto React.

Por que isso é importante

Resposta direta: em “Como criar um Helper universal para formatar moedas em”, meça no seu contexto — hype e ranking não substituem eval e aceite.

Por que isso é importante

Como criar um Helper universal para formatar moedas em React. Transforme centavos em reais BRL usando um único utilitário, limpe seu código e reforce padrões de qualidade para qualquer tela do seu projeto React.

Helpers: dinheiro bem formatado é respeito ao usuário

Você já tentou exibir valores em reais direto do banco e viu R$ 1999 em vez de R$ 19,99?
Isso espanta qualquer usuário. Todo valor precisa de um Helper. Helper significa uma
função criada com o único propósito de servir em qualquer página, seja médicos,
agendamento ou financeiro.

Atenção

Jamais formate seu valor de centavos em real direto no componente. Isso gera bugs,
códigos duplicados e impede ajustes globais no futuro.

Centralize: helpers vão no SRC e não em cada página

Coloque helpers em uma pasta só, de preferência src/helpers ou src/utils .
Isso permite reusar funções como formatar moeda sempre.

Dica técnica

Crie um arquivo chamado currency.ts e dê nomes financeiros descritivos, como formatCurrencyInCents .

Função universal: formatando centavos para reais

A função deve receber o valor em centavos e devolver já como real formatado em BRL,
exemplo: R$ 19,99 a partir de 1999 . Use a API de internacionalização do
JavaScript (Intl.NumberFormat).

Atenção

Sempre divida o valor em centavos por 100 antes de passar ao formatador – senão você
exibe números de quatro dígitos.

Exemplo direto ao ponto

No arquivo src/helpers/currency.ts :

Exemplo de código

export function formatCurrencyInCents(amount: number): string return new
Intl.NumberFormat('pt-BR', style: 'currency', currency: 'BRL' ).format(amount / 100)

Importando em qualquer lugar

No seu componente de médicos ou agendamento, basta importar: import formatCurrencyInCents from "@/helpers/currency" e usar: formatCurrencyInCents(valor) .

Atenção

Evite nomear helpers de maneira genérica como format ou currency . Seja
explícito sobre o que realiza!

Atualize todas as telas de valores

Mude todos os componentes que exibem preço ou cobrança para usarem seu helper único.
Isso força o padrão no projeto todo e facilita manutenção.

Alerta rápido

Misturar lógica de formatação de moeda no componente quebra o Single Responsibility
Principle. Separe sempre.

Plugins, libs e porque fazê-lo manualmente

Apesar de existirem libs para formatação, usar nativo do JS é leve e simplifica
dependências. Foque sempre em menos mágicas externas.

Alternativa

Se precisar, use dinero.js para regras fiscais avançadas ou formatos multi
país.

Reuso: o mesmo helper salva seu futuro

Precisa mostrar valores no dashboard, no recibo, exportar planilha ou enviar e-mail? O
mesmo helper serve para todos: qualidade e bug zero.

Sucesso

Você ganha manutenção rápida e zero refatoração quando trocar moeda, símbolo, idioma.

Deixe explícito e documente

Coloque comentários simples – // Recebe centavos e devolve R$ – em cada função
helper. Pequenos cuidados evitam bugs de futuro.

Dica

Comente tipos esperados, formatos de input e exemplos de uso na função.

Teste e cubra seu Helper

Inclua testes unitários. Exemplo: 1999 vira R$ 19,99. 0 vira R$ 0,00. Teste valores
negativos e zero.

Atenção

Não dependa apenas do visual: garanta que a formatação não quebra com entradas
inesperadas.

Evite dependências desnecessárias

Menos pacotes, menos falhas, menos atualização. Use sempre a API nativa do JS quando
possível. Você ganha performance.

Alternativa

Só traga libs externas quando a regulamentação fiscal ou internacionalização exigir,
não antes.

Padrão portável: use no web, app, backend

Helpers universais com TypeScript funcionam perfeito no React, mas também podem ir para
backend em Node, usando exatamente a mesma lógica.

Sucesso

Com TypeScript, os tipos vão garantir durabilidade e autocompletar em qualquer camada
do sistema.

O segredo das grandes stacks: código limpo, helper único

Toda empresa grande tem padrão: helpers centralizados, funções documentadas, nada de
lógica financeira na view. Esse é o segredo para crescer rápido.

Recomendo

Adapte seu código agora mesmo para adotar este padrão e siga para o próximo nível dev!

Continue melhorando: vai mais além?

Quer sair do básico? Veja vídeos e dicas avançadas no canal Dev Doido no Youtube para
evoluir seu React do básico ao hiperprodutivo.

Onde aprender mais?

Mais práticas como questão de conversão de moedas, internacionalização total e
automação? Veja https://www.youtube.com/@DevDoido e mantenha sua stack CrazyStack
atualizada!

Perguntas frequentes

Em Como criar um Helper universal para formatar moedas em, qual restrição de «Centralize: helpers vão no SRC e não em cada página» o texto força?

No artigo `formatando-moeda-em-centavos-t`, «Centralize: helpers vão no SRC e não em cada página» aponta: Coloque helpers em uma pasta só, de preferência src/helpers ou src/utils . Isso permite reusar funções como formatar moeda sempre.

Como validar «Função universal: formatando centavos para reais» com um teste mínimo esta semana?

Prática sugerida pelo texto: A função deve receber o valor em centavos e devolver já como real formatado em BRL, exemplo: R$ 19,99 a partir de 1999 . Use a API de internacionalização do JavaScript (Intl.NumberFormat).

O que «Exemplo direto ao ponto» muda no critério de aceite?

export function formatCurrencyInCents(amount: number): string return new Intl.NumberFormat('pt-BR', style: 'currency', currency: 'BRL' ).format(amount / 100) Em «Exemplo direto ao ponto», o material trata isso como restrição operacional — não como slogan.

Qual risco «Importando em qualquer lugar» evita se você ficar só no resumo?

Parta do mecanismo descrito: No seu componente de médicos ou agendamento, basta importar: import formatCurrencyInCents from "@/helpers/currency" e usar: formatCurrencyInCents(valor) .

Perguntas frequentes

Em Como criar um Helper universal para formatar moedas em, qual restrição de «Centralize: helpers vão no SRC e não em cada página» o texto força?

No artigo `formatando-moeda-em-centavos-t`, «Centralize: helpers vão no SRC e não em cada página» aponta: Coloque helpers em uma pasta só, de preferência src/helpers ou src/utils . Isso permite reusar funções como formatar moeda sempre.

Como validar «Função universal: formatando centavos para reais» com um teste mínimo esta semana?

Prática sugerida pelo texto: A função deve receber o valor em centavos e devolver já como real formatado em BRL, exemplo: R$ 19,99 a partir de 1999 . Use a API de internacionalização do JavaScript (Intl.NumberFormat).

O que «Exemplo direto ao ponto» muda no critério de aceite?

export function formatCurrencyInCents(amount: number): string return new Intl.NumberFormat('pt-BR', style: 'currency', currency: 'BRL' ).format(amount / 100) Em «Exemplo direto ao ponto», o material trata isso como restrição operacional — não como slogan.

Qual risco «Importando em qualquer lugar» evita se você ficar só no resumo?

Parta do mecanismo descrito: No seu componente de médicos ou agendamento, basta importar: import formatCurrencyInCents from "@/helpers/currency" e usar: formatCurrencyInCents(valor) .

Continue melhorando: vai mais além?

Quer sair do básico? Veja vídeos e dicas avançadas no canal Dev Doido no Youtube para evoluir seu React do básico ao hiperprodutivo.