Sé que aquí se hacen preguntas similares con frecuencia, pero no he podido encontrar una respuesta que haya podido hacer que funcione después de buscar durante un par de horas; realmente podría usar tu ayuda.
Trabajando en una calculadora de precios usando Javascript en Adobe Acrobat y necesito limitar un número a exactamente 2 decimales sin ningún redondeo.
Necesito limitar los lugares decimales porque el siguiente paso en la calculadora es ajustar ese número para que se ajuste a nuestra estructura de precios en función de dónde se encuentran sus decimales dentro de un rango. Aquí está mi código de ajuste para un poco de contexto.
if (decimals < 0.20)event.value = -1.01; else if ((decimals > 0.19) && (decimals < 0.30))event.value = 0.29; else if ((decimals > 0.29) && (decimals < 0.40))event.value = 0.39; else if ((decimals > 0.39) && (decimals < 0.50))event.value = 0.49; else if ((decimals > 0.49) && (decimals < 0.60))event.value = 0.59; else if ((decimals > 0.59) && (decimals < 0.70))event.value = 0.69; else event.value = 0.99;El problema surge cuando tengo un valor de, por ejemplo, 15.390001. Necesito ese código de ajuste para que devuelva 15,39, pero en este momento se está empujando a 15,49, ya que x.390001 es mayor que x.39.
Actualmente se usa el siguiente código para truncar un número a 2 decimales sin redondear.
var flcost = this.getField("fl_cost"); // Front Line Cost var multi = this.getField("multiplier_calc"); // Subcat Multiplier var dep = this.getField("deposit"); //Deposit total var nAdj = Math.pow(10, 2); // decimal adjustment var rough = Math.floor(flcost.value * multi.value * nAdj) / nAdj; event.value = rough+deposit;Me devuelven valores inconsistentes. Por ejemplo, truncará correctamente 11.376 a 11.37 y 9.432 a 9.43.
Sin embargo, cuando le doy algo como 23.832, devuelve 23.830000000000002, y en otro caso, cuando le doy 143.832, devuelve 143.82999999999998. En otros casos, he visto que en realidad se redondea, así que estoy increíblemente confundido.
Entonces, ¿qué debo hacer para reducir correctamente un número a 2 decimales sin redondear?
¡Y lo siento por potencialmente sobre-explicar las cosas!