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

76
Vistas
Mejorar el redondeo de números de javascript

Me preguntaba si hay una manera de mejorar y hacer que esta función sea más rápida, consuma menos recursos y sea más legible:

 calculateMerchantEarnings(original_price) { const processor_percentage = Math.round((original_price * 0.029 + Number.EPSILON) * 100) / 100; const processor_flat = 30; // in cents const myfees_and_processing_fees = processor_percentage + processor_flat + 100; const final_price_minus_deductions = original_price - myfees_and_processing_fees; const final_price_in_cents = Math.round((final_price_minus_deductions + Number.EPSILON) * 100) / 100; return ( Math.round((final_price_in_cents / 100 + Number.EPSILON) * 100) / 100 ); }

Lo que hago es:

  1. Pase el precio_original en centavos
  2. Calcule las tarifas porcentuales del procesador CC
  3. Agregue mis tarifas ($ 1) y el porcentaje del procesador y la tarifa plana
  4. calcule el precio final deduciendo las tarifas totales del precio_original
  5. Redondea el precio final en centavos
  6. Convierte el precio final a dólares y redondea hacia arriba

Tengo la sensación de que puedo hacer todo esto con una sola línea :)

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

0

Básicamente, podría agregar todo en una sola expresión.

 function calculateMerchantEarnings(original_price) { const processor_percentage = Math.round((original_price * 0.029 + Number.EPSILON) * 100) / 100; const processor_flat = 30; // in cents const myfees_and_processing_fees = processor_percentage + processor_flat + 100; const final_price_minus_deductions = original_price - myfees_and_processing_fees; const final_price_in_cents = Math.round((final_price_minus_deductions + Number.EPSILON) * 100) / 100; return Math.round((final_price_in_cents / 100 + Number.EPSILON) * 100) / 100; } const fn = x => Math.round(x * 0.971 - 130) / 100; console.log(calculateMerchantEarnings(1000)); console.log(fn(1000));

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