Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

220
Vistas
¿Rangos de redondeo personalizados usando Javascript?

Soy un entrenador corporativo para un minorista, no un desarrollador, pero necesito descubrir algo de codificación para terminar un proyecto. ¡Gracias por cualquier ayuda!

Trabajando en un proyecto para calcular los precios de venta de la cerveza que se calcula en costo, margen de beneficio, depósito y descuentos. La información se envía a nivel de tienda a través de un formulario web, esos datos se completan automáticamente en un formulario pdf y luego ese formulario se envía al comprador. Este javascript se está escribiendo en ese archivo pdf.

El problema es que necesito redondear el precio de venta final usando reglas específicas para que coincida con nuestra estructura de precios. Aquí están las reglas:

  • Si los últimos 2 dígitos están en el rango de 00 y 19, redondee hacia abajo al 99 más cercano.
  • Si los últimos 2 dígitos están en el rango de 20 y 69, redondee al 09 más cercano.
  • Si los últimos 2 dígitos están en el rango de 70 y 99, redondee a 99.

Asi que:

  • 5.19 necesita redondearse a 4.99.
  • 21.20 necesita redondearse a 22.09.
  • 102,76 necesita redondearse a 102,99.

Estoy perdido y confundido en este punto, ya estoy fuera de mi alcance. Aquí es donde he llegado hasta ahora:

 var flsellround = this.getField("FLSellCalc").value; var lasttwo = flsellround.slice(0, -2);

... y no sé a dónde ir desde allí, o incluso si usar .slice es el siguiente paso correcto. El campo que contiene el número que debe redondearse es "FLSellCalc".

Esperemos que todo tenga sentido. ¿Alguien capaz y dispuesto a ayudarme aquí? ¡Seguro que lo agradecería!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Aquí hay una función y una página interactiva para probarla:

 function specialRound(n) { if (n < 0) return -specialRound(-n); let decimals = n % 1; return n - decimals + ( decimals < 0.2 ? -0.01 : decimals < 0.7 ? 1.09 : 0.99); } let output = document.getElementById("output") let flsellinput = document.getElementById("FLSellCalc"); flsellinput.addEventListener("input", refresh); function refresh() { let n = +flsellinput.value; output.textContent = specialRound(n); } refresh();
 <input id="FLSellCalc" type="number" value="5.19" step="0.01"> <div id="output"></div>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda