1

Cuando hago la multiplicación porque me sale esto ?

  var x = 0.036*100;
   console.log(x); 
    
    //Deberia ser 3.6
Jorgesys
  • 103,630
  • 13
  • 52
  • 124
  • 1
    Ve acostumbrándote. Casi todos los lenguajes de programación tienen esos "problemas". En aplicaciones más críticas a veces es mejor usar librerías que manejan ese inconveniente internamente. En este artículo hay una referencia sencilla https://es.quora.com/Por-qu%C3%A9-0-1-+-0-2-no-es-igual-a-0-3-en-la-mayor%C3%ADa-de-los-lenguajes-de-programaci%C3%B3n – aeportugal Jun 28 '19 at 17:31
  • @aeportugal esa no es la mejor respuesta posible. – Alfabravo Jun 28 '19 at 17:32
  • 4
    No es una respuesta, es solo un comentario @Alfabravo – aeportugal Jun 28 '19 at 17:33
  • 3
    @aeportugal como comentario también es malo porque no es cierto. Pueden hacerse cálculos computacionales precisos y todo depende de cómo lo hagas. Acostumbrarse no es un comentario válido, constructivo ni real. – Alfabravo Jun 28 '19 at 17:34
  • 1
    @Alfabravo creo que se refería a que se acostumbre a toparse con ese tipo de problemas. Lo cual es válido porque no hay lenguaje que se escape de la precisión aritmética. Representar números de coma flotante no es un paseo en el parque. – César Jun 28 '19 at 17:43

1 Answers1

1

Creo que para llegar al resultado deseado deberias usar .toFixed()

var x = (0.036*100).toFixed(1);
console.log(x); 

Fuente: https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Number/toFixed

Ale
  • 634
  • 3
  • 9
  • 21