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:
Tengo la sensación de que puedo hacer todo esto con una sola línea :)
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));