BlogBastidores

Por que a conta da mesa fecha com um centavo a menos

12 de agosto de 2026 · 5 min de leitura

Um problema clássico de software que aparece exatamente onde o cliente confere. E a decisão de modelagem que o elimina.

A conta da mesa dá R$ 100,00. Três pessoas dividem. Cada uma paga R$ 33,33, e sobra um centavo que ninguém deve — mas a mesa não fecha. Todo mundo que já operou salão viu isso, e quase sempre culpa o sistema. A culpa é do sistema, e a causa é mais antiga que ele.

O que acontece por baixo

Computador guarda número decimal em ponto flutuante, um formato que representa muito bem valores em base 2 e mal valores em base 10. `0,1 + 0,2` não dá `0,3` — dá `0,30000000000000004`. Some isso trezentas vezes num turno e o total do caixa passa a divergir da soma das comandas por alguns centavos.

A correção é modelar diferente, não arredondar melhor

A tentação é arredondar em cada operação. Isso empurra o problema: o erro para de aparecer nos casos comuns e volta nos raros, que são os difíceis de reproduzir.

A saída é não ter fração: todo valor é **inteiro, em centavos**. R$ 149,00 é o número 14900. Soma, subtração e comparação passam a ser exatas por construção, e a divisão por 100 acontece só na hora de escrever na tela. A divisão de conta que sobra um centavo continua sobrando — mas agora é uma decisão visível de para quem vai o centavo, e não um erro que ninguém explica.

É por isso que a mesa não fecha faltando um centavo. Não é rigidez: é o único jeito de garantir que o total conferido pelo cliente e o total do relatório sejam o mesmo número.

Coloque a sua casa no ar hoje

7 dias com tudo liberado, sem cartão. Dá para importar o cardápio que você já tem.

Testar grátis por 7 dias