Fallos del tipo CWE-1339
1 resultadoPrecisão insuficiente em operações com números reais
Quando um software usa tipos de dados ou operações que não representam números reais com precisão suficiente, cálculos críticos podem produzir resultados incorretos ou imprecisos. Isso ocorre tipicamente com ponto flutuante (float, double) em operações que exigem exatidão absoluta, como cálculos financeiros, controle de sistemas críticos ou validações de segurança.
Um sistema de pagamento usa float para armazenar e somar valores monetários. Após múltiplas operações, erros de arredondamento se acumulam, fazendo com que R$ 0,01 se perca a cada transação — vulnerável a fraudes ou inconsistências contábeis.
Use tipos decimais de precisão arbitrária (como BigDecimal em Java ou Decimal em Python) para cálculos que exigem exatidão. Para domínios críticos (financeiro, segurança), sempre valide e documente a precisão numérica exigida, evitando ponto flutuante em operações sensíveis.