-1

tengo dos numeros decimales los cuales multiplico el problema es que en javascript al parecer es muy exacto ya que me da un valor mas bajo

los valores que quiero multiplicar son

15.25 * 1.18

si lo hago en php el resultado es 17.995

 <?php

 $valor=15.25;
 echo $valor*1.18; 

si lo hago en calculadora el resultado es 17.995

el problema es que si lo hago en javascript me da resultado

17.994999999999997

var x= 15.25 

alert(x*1.18)

la pregunta ahora es como puede hacer para que en javascript sea igual como en la calculadora o en php y me de 17.995 sin usar ninguna función de redondeo en javascript,por que el resultado de javascript entrega mas decimales que php o la propia calculadora.

jose miguel jara
  • 367
  • 6
  • 21
  • 1
    Posible duplicado de [¿Por qué mis programas no pueden hacer cálculos aritméticos correctamente?](https://es.stackoverflow.com/questions/197/por-qu%c3%a9-mis-programas-no-pueden-hacer-c%c3%a1lculos-aritm%c3%a9ticos-correctamente) – BetaM Sep 27 '19 at 02:03
  • Eso es por la forma en la que los ordenadores representan los números de punto flotante, lee la pregunta que te menciona Aprendiz – the-breaker Sep 27 '19 at 02:27

1 Answers1

-1

JavaScript Trabaja con una matemática mas precisa que la que utiliza PHP por lo tanto te da un resultado mas largo o con mas decimales

El método toFixed(n) formatea un número usando notación de punto fijo.

toFixed(n) redondea el resto de números y aplicando tantos decimales como exprese n.

var resultado = 15.25*1.18;
resultado // Devuelve 17.994999999999997
resultado.toFixed(3); // Devuelve 17.995

Aun así te recomiendo que mires esto cálculos aritméticos

Marc
  • 5,005
  • 7
  • 17
  • 36
Daniel
  • 345
  • 1
  • 9