tengo una duda respecto a Javascript. Cuando ejecuto la siguiente linea
console.log(0.1 + 0.1 == 0.2) // true
Pero cuando ejecuto
console.log(0.1 + 0.2 == 0.3) // false
A que se debe esto?
tengo una duda respecto a Javascript. Cuando ejecuto la siguiente linea
console.log(0.1 + 0.1 == 0.2) // true
Pero cuando ejecuto
console.log(0.1 + 0.2 == 0.3) // false
A que se debe esto?
Cuando pones
console.log(0.1 + 0.2 == 0.3)
Haces el calculo directamente y la respuesta en el calculo de 0.1 + 0.2 para JavaScript es: 0.30000000000000004 Esto es debido a IEEE 754 Spec
El estándar del IEEE para aritmética en coma flotante (IEEE 754) es la norma o estándar técnico para computación en coma flotante, establecida en 1985 por el Instituto de Ingenieros Eléctricos y Electrónicos
Ese problema de calculo pasa en muchos otros lenguajes de programacion.
https://ieeexplore.ieee.org/document/30711
Para que no tengas problemas en el calculo te recomendaria que lo pasaras a String y luego lo cortaras a tu gusto para hacer el calculo mas preciso, de esta forma:
let n = 0.1 + 0.2;
let sum = n.toString();
let total = sum.substr(0, 3);
console.log(total);
console.log( total == 0.3)