ExpertiDict

JavaScript · Intermediário · Português · Técnico

ponto flutuante

/ˈpõtu fluˈtwɐ̃tʃi/substantivo

Formato numérico de 64 bits (IEEE 754) usado por todo Number em JavaScript. Não representa exatamente muitas frações decimais, por isso 0.1 + 0.2 não dá 0.3.

Onde usar

Gera bugs em cálculos de dinheiro e em comparações de decimais. Em code review, valores monetários devem usar inteiros em centavos ou biblioteca decimal, e comparações usam tolerância.

Em código

console.log(0.1 + 0.2);
// 0.30000000000000004
const dif = Math.abs(0.3 - (0.1 + 0.2));
console.log(dif < Number.EPSILON); // true

Exemplos

O erro de ponto flutuante fez a soma dar trinta centavos e uns quebrados.

Não compare decimais com === por causa do ponto flutuante.

Cuidado

Comparar decimais com === depois de somas; arredonde ou compare com margem de erro.

Sinônimos

floating point, IEEE 754

Veja também

Todos os termos de JavaScript