1

estoy realizando una un calculador de precios a tiempo real con javascript y tengo un problema al multiplicar ciertos números como pueden ser 1.1*12 me da un resultado de 13.200000000000001, no entiendo porque da tanto decimal. En este caso necesitaría que saliera con únicamente dos decimales

console.log(12*1.1);

Ignaciooc5
  • 11
  • 3

1 Answers1

2

El problema no es jQuery, es Javascript quien te devuelve el resultado exacto, o sea sin redondear. Si lo quieres redondear entonces lo que debes hacer es:

let y = 12*1.1
// aquí `y` es igual a 13.200000000000001

let x;

x = Math.round(y);
// `x` retorna el valor 13

EDITADO:

Para redondear a dos decimales después de la coma, que es lo que quieres, utiliza esto para los números con decimales:

x = y.toFixed(2);
// `x` retorna el valor 13.20
Adriana Hernández
  • 1,606
  • 1
  • 15
  • 31
  • Cierto, es javascript. No me resuelve la problematica que tengo actualmente ya que es un calculador de precios por lo tanto hay decimales(centimos). Lo que necesito es que salga el resultado que es, es decir, 13.2. – Ignaciooc5 Apr 03 '19 at 15:08
  • A ver, el resultado que es es 13.200000000000001. Y otra cosa distinta es el resultado que tu quieres, que es 13.21 (con 2 decimales después de la coma). Pero para eso debiste especificar en la pregunta la cantidad de decimales con que quieres redondear el resultado porque el lenguaje no es adivino ;-) – Adriana Hernández Apr 03 '19 at 15:14
  • Tienes toda la razón – Ignaciooc5 Apr 03 '19 at 15:16
  • 1
    Ya te edité la respuesta con lo que necesitas, aunque creo que nunca lograrás 13,21 con esta multiplicación, ya que ese redondeo no es correcto. Lo correcto es a 13,20 – Adriana Hernández Apr 03 '19 at 15:20
  • Si te sirvió la respuesta puedes marcarla como aceptada en la esquina superior izquierda de la misma. Saludos – Adriana Hernández Apr 03 '19 at 15:28