Calculadora HTML para site: o código pronto e o que ele custa depois

O HTML mínimo de uma calculadora feita à mão, com a lógica em JavaScript, e a comparação honesta com incorporar uma calculadora que se mantém sozinha quando a regra muda.

Revisão técnica: Cesar Gargiulo (segurança da informação)MDN Web Docs: Number.prototype.toLocaleString / MDN Web Docs: campo de entrada numérico
Calcule agora: PorcentagemResultado na hora, de graça e sem cadastro.

Quem procura calculadora em HTML para site quer uma de duas coisas: o código para escrever a própria, ou algo pronto para colar e acabar. Esta guia entrega as duas, e diz com franqueza em que situação cada uma é a escolha certa. O critério é único: se a conta muda por lei ou por índice, o código copiado é um passivo.

Resposta rápida

  • Conta fixa (porcentagem, IMC, área): escreva em HTML. O código está abaixo.
  • Conta que muda (INSS, IRRF, Selic, FIPE): incorpore uma calculadora para site que se atualiza sozinha.
  • Formate com toLocaleString em pt-BR, senão o real sai com ponto.
  • Escreva o resultado com textContent, nunca com innerHTML.

O código completo de uma calculadora em HTML

Este é um exemplo funcional de calculadora de desconto: formulário, cálculo, validação e formatação em real. Cole num arquivo .html e abra no navegador. São menos de trinta linhas e não há dependência nenhuma.

<form id="calc">
  <label>Valor <input type="number" id="valor" step="0.01" required></label>
  <label>Desconto (%) <input type="number" id="pct" step="0.01" required></label>
  <button type="submit">Calcular</button>
</form>
<p id="saida" role="status" aria-live="polite"></p>

<script>
document.getElementById("calc").addEventListener("submit", function (e) {
  e.preventDefault();
  var valor = parseFloat(document.getElementById("valor").value);
  var pct = parseFloat(document.getElementById("pct").value);
  if (!isFinite(valor) || !isFinite(pct)) {
    document.getElementById("saida").textContent = "Preencha os dois campos.";
    return;
  }
  var final = valor * (1 - pct / 100);
  document.getElementById("saida").textContent =
    "Preco final: " + final.toLocaleString("pt-BR", { style: "currency", currency: "BRL" });
});
</script>

O que cada parte faz

O formulário usa type="number" com step, o que faz o celular abrir o teclado numérico e o navegador recusar letra sozinho. O preventDefault impede a página de recarregar ao enviar. O isFinite é a linha que separa uma calculadora publicável de uma que mostra NaN para o visitante: sem ele, campo vazio produz um resultado sem sentido.

O parágrafo de saída tem role="status" e aria-live="polite". Isso faz o leitor de tela anunciar o resultado quando ele aparece, sem interromper quem está no meio de outra leitura. É uma linha, e é a diferença entre uma calculadora que cega usa e uma que ela não percebe que respondeu.

Por que o código copiado envelhece

Pegue uma calculadora de INSS escrita em 2024 e publicada num repositório qualquer. Ela tem as quatro faixas daquele ano digitadas no meio do JavaScript. Em janeiro de 2025 o teto e as faixas mudaram; em janeiro de 2026, de novo. O código continua rodando, continua devolvendo um número com cara de certo, e ninguém recebe aviso nenhum. O visitante confia, o site perde credibilidade, e o dono do site só descobre quando alguém reclama.

Essa é a diferença entre uma conta e uma tabela. Porcentagem é conta: a fórmula de 1980 vale hoje. Desconto de INSS é tabela: a fórmula é estável, os números não. Antes de copiar qualquer código de calculadora, pergunte de qual dos dois tipos é a sua.

Tipo de contaExemplosEscreva em HTML?
Fórmula puraPorcentagem, regra de três, IMC, área, conversão de unidadeSim. Nunca desatualiza.
Fórmula com tabela anualINSS, IRRF, salário mínimo, Simples Nacional, FGTSSó com rotina de atualização em janeiro.
Fórmula com dado ao vivoSelic, CDI, dólar, IPCA, tabela FIPENão. Precisa de fonte que atualiza sozinha.

A versão que não pede manutenção

O código abaixo é o mesmo tipo de calculadora do exemplo, com uma diferença: o cálculo roda no ValorFinal, então a manutenção é nossa. Mexa nas opções e copie.

A alternativa em uma linha de HTML

Um iframe, um crédito opcional e nada para manter. O cálculo acompanha a regra vigente sozinho.

Calculadora de porcentagem

Tema
Cor
Largura

Pré-visualização

Código para incorporar

Abrir o widget sozinhoVer este widget no catálogo

Erros comuns em calculadora feita à mão

Onde continuar

Esta guia faz parte da família de calculadoras para site. A página principal reúne o catálogo inteiro, o passo a passo de instalação em onze plataformas e a comparação com construtor pago e plugin.

Se o que você quer é dado que se atualiza sozinho (cotação, índice, resultado de loteria, tabela do Brasileirão) e não uma calculadora, o lugar é o catálogo de widgets gratuitos, e a lista comentada está em widgets grátis para site. Para WordPress, o plugin oficial fica em /embed/wordpress.

Fontes e referências

Calculadoras deste guia

Leia também

Como citar esta página

Vai citar este guia em uma matéria, post ou trabalho? Copie a referência pronta. O conteúdo é baseado em MDN Web Docs: Number.prototype.toLocaleString e revisado pela equipe editorial.

ValorFinal. Calculadora HTML para site: o código pronto e o que ele custa depois. Disponível em: https://valorfinal.com.br/guia/calculadora-html-para-site. Atualizado em: 09/09/2026.

ValorFinal VIP: Sem anúncios no portal inteiro, cenários salvos e alertas por e-mail.

Como validamos este conteúdo

Base deste guia: MDN Web Docs: Number.prototype.toLocaleString / MDN Web Docs: campo de entrada numérico. Padrões, APIs, versões e recomendações técnicas evoluem. O conteúdo reflete a documentação de referência na data de atualização; confira sempre a documentação oficial da versão que você usa. Entenda nossa metodologia em como validamos os cálculos.

Perguntas frequentes

Existe um código HTML de calculadora pronto para copiar?
Existe, e esta página traz um completo, com formulário, validação e formatação em real. Ele funciona colado direto num arquivo .html, sem biblioteca. O que ele não faz é se manter sozinho: se a sua conta depender de uma tabela oficial, como a do INSS, o número que você digitar hoje continuará lá no ano que vem.
Dá para fazer uma calculadora só com HTML, sem JavaScript?
Não dá para calcular. O HTML descreve o formulário, mas quem faz conta é o JavaScript. Existe um truque com o elemento output e o atributo form que soma campos sem script em alguns navegadores, mas ele é limitado a operações triviais e o suporte é irregular. Para qualquer conta real, você precisa de algumas linhas de JavaScript.
Qual a diferença entre esse código e incorporar uma calculadora pronta?
A diferença é quem mantém a fórmula. No código próprio, você mantém: quando a faixa do INSS muda em janeiro, você edita o arquivo. Na calculadora incorporada, o cálculo roda no servidor de origem, então a página do seu site passa a usar a regra nova sem você tocar em nada. Para uma conta que não muda, como porcentagem ou IMC, o código próprio é uma escolha perfeitamente razoável.
Por que o resultado aparece com ponto em vez de vírgula?
Porque o JavaScript formata número no padrão americano por default. A correção é usar toLocaleString com o idioma pt-BR, como no exemplo desta página. Sem isso, o visitante brasileiro lê 1.234,56 como mil duzentos e trinta e quatro vírgula cinquenta e seis e vê 1234.56, que ele interpreta errado com frequência.
Meu código mostra NaN quando o campo está vazio. Como evito?
NaN aparece quando parseFloat recebe algo que não é número, e string vazia é um desses casos. Verifique com isFinite antes de calcular e mostre uma mensagem em vez do resultado, como no exemplo. Esse é o defeito mais comum das calculadoras caseiras copiadas de tutorial: o tutorial testa só o caminho feliz.
O código de calculadora que achei num repositório é confiável?
Depende do que ele faz. Para a estrutura do formulário e a leitura dos campos, quase todos servem. O risco está nas tabelas: exemplos de calculadora de INSS, IRRF ou FGTS costumam trazer os valores do ano em que foram escritos, cravados no meio do código, sem nenhuma indicação de data. Copiar isso publica um número errado no seu site sem nenhum aviso.
A calculadora em HTML é boa para SEO?
O conteúdo do formulário fica no seu HTML e é rastreável, o que é uma vantagem real em relação ao iframe. Mas isso raramente decide posição: quem ranqueia em consulta de calculadora é a página que explica o cálculo em texto, cita a fonte e responde as dúvidas em volta. O formulário segura o visitante; o texto é o que o buscador lê.
Preciso me preocupar com segurança numa calculadora em HTML?
Sim, num ponto específico: nunca escreva no HTML aquilo que o visitante digitou usando innerHTML. Use textContent, como no exemplo. Com innerHTML, um valor digitado com tag de script vira código executado na página de quem abriu, e essa é a porta de entrada clássica de ataque por injeção em página estática.