Tablora

Tablora · Biblioteca

Preservar pequenas contribuições decimais

Some 1.2 e 0.003 de forma exata para obter 1.203. O verificador mantém a maior escala decimal que encontra, então pequenas contribuições nunca são arredondadas.

Valores com casas decimais diferentes

Os dados reais misturam precisões: um preço unitário com três ou quatro casas decimais, uma tarifa arredondada para centavos, uma quantidade em números inteiros. Quando eles são somados em uma ferramenta que formata o resultado com duas casas, uma contribuição pequena como 0.003 pode sumir do total exibido, e dois totais que diferem na terceira casa decimal parecem iguais.

O verificador de somas decimais calcula o maior número de casas decimais entre todos os valores e o total esperado, ajusta cada valor a essa escala e os soma de forma exata. Nada é arredondado, e o resultado é mostrado com a escala completa.

A escala inclui o “Total esperado”. Se você inserir 1.20300 ali, todos os números do resultado aparecem com cinco casas decimais, mesmo que nenhuma linha tenha tantas.

Somando 1.2 e 0.003

O exemplo da página insere 1.2 e 0.003 em “Um valor por linha”, com um “Total esperado” de 1.203. O “Total calculado” é 1.203 e a “Diferença” é 0.000, então “Os totais coincidem” mostra “Sim”. O resultado tem três casas decimais porque 0.003 e o total esperado têm três.

Repare que a diferença aparece como 0.000, e não 0. Todos os números do resultado têm a mesma escala, o que facilita ler pequenas diferenças.

Inserindo valores com precisões diferentes

O arredondamento é outra etapa

Manter a escala é uma propriedade da aritmética exata, e não uma política financeira de arredondamento. Se o número com que você compara foi arredondado para centavos, decida primeiro se a origem arredondou cada linha ou só o total, e aplique você mesmo essa regra antes de comparar. O verificador vai mostrar então se o número arredondado bate.

A ferramenta de normalização se comporta da mesma forma com valores isolados: ela mantém os algarismos decimais que foram escritos, então 125.00 continua 125.00 e 0.003 continua 0.003, sem ser encurtado.

Dados de entrada

Um valor por linha
1.2 0.003
Total esperado
1.203

Resultados

Total calculado
1.203
Diferença
0.000
Os totais coincidem
Sim