I was wondering if there's a way to improve and make this function faster, less resource consuming and more readable:
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
);
}
What I do is:
- Pass the original_price in cents
- Calculate CC Processor percentage fees
- Add my fees ($1) and the processor's percentage and flat fee
- calculate the final price by deducting the total fees from the original_price
- Round up the final price in cents
- Convert the final price to dollars and round up
I have a feeling I may be able to do all this with one line :)