INVOICE MAKER← Guia

O centavo que falta

Você soma as linhas, o financeiro do cliente soma as linhas, e os dois totais diferem em um centavo. Ninguém errou a conta. Duas coisas causam isso — arredondar em momentos diferentes e o jeito como computadores guardam frações decimais — e as duas são evitáveis.

Criar uma fatura no navegador →Faturas em que o total fecha de verdade.

Dinheiro não é decimal, é inteiro de centavos

Computadores guardam 0,1 e 0,2 como frações binárias muito próximas mas não exatas, então 0,1 mais 0,2 não dá 0,3 na maioria das linguagens. Numa linha ninguém percebe. Ao longo de quarenta linhas e um cálculo de imposto, o erro se acumula em um centavo visível. O aplicativo nunca guarda um valor como decimal: cada preço vira um número inteiro de **centavos** no momento da digitação, toda a aritmética acontece com inteiros, e a conversão de volta é só para exibir.

Arredondar uma vez, num lugar só

A segunda causa é mais sutil. Pegue três linhas de 3 unidades a 0,335. Arredondando cada linha primeiro, você tem 1,01 três vezes: 3,03. Somando primeiro e arredondando uma vez, 3,02. Aritmeticamente nenhum está errado; são respostas a perguntas diferentes. Errado é fazer os dois no mesmo documento — arredondar linhas para exibir mas somar valores não arredondados — o que produz uma fatura em que as linhas visíveis não somam o total visível. O aplicativo arredonda uma vez, por linha, e soma as linhas arredondadas.

Onde o desconto esconde um centavo

Um desconto percentual sobre o total não se divide igualmente entre as linhas. Dez por cento de três linhas de 3,33 é 0,999 — um terço de centavo por linha, que não dá para imprimir. Arredondando cada parte para baixo, some um centavo do total; para cima, sobra um. O aplicativo calcula o desconto sobre o subtotal, distribui nas linhas e coloca o resto em uma delas, de modo que a soma das linhas com desconto seja exatamente o subtotal com desconto.

Moedas sem centavos

Nem toda moeda tem duas casas. O iene japonês não tem nenhuma: um valor é um número inteiro de ienes e não há subunidade para arredondar. Um sistema que fixa duas casas produz preços como ¥1.250,00, que não é como se escreve iene, e pior, arredonda ao centésimo de uma unidade que não existe. O aplicativo guarda as casas decimais **por moeda**.

Perguntas frequentes

Por que minha fatura difere um centavo da planilha?

Normalmente porque um arredonda cada linha e o outro só o total. Ambos defensáveis; misturar os dois num documento não.

Arredondo por linha ou no total?

Por linha, e depois some as linhas arredondadas — assim as linhas impressas somam o total impresso.

0,1 + 0,2 realmente não é 0,3?

Em ponto flutuante binário, não: é 0,30000000000000004. Por isso dinheiro se trata em centavos inteiros.

Por que desconto percentual deixa resto?

Porque uma porcentagem de um total raramente se divide em centavos exatos entre as linhas. O resto tem que cair em uma linha.

Como o aplicativo trata o iene?

Como moeda de zero casas: ienes inteiros, sem subunidade e sem arredondamento a centavos.

Não posso corrigir o total na mão?

Não. Um total que não é a soma das linhas é a primeira coisa que quem revisa percebe. Corrija a regra de arredondamento.

Faturas em que o total fecha de verdade. O Invoice Maker monta faturas, proformas, orçamentos e recibos no navegador, faz as contas em centavos inteiros para a linha de imposto não escorregar, e exporta um PDF. Nada é enviado para servidor.

Criar uma fatura no navegador
Idioma: TR EN DE ES FR IT PT AR RU JA KO