how can I divide number (money) to x number equally the number could be with one or two decimal or without it
such as 1000
or 100.2
or 112.34
I want to be able to split that number into x part all of them equally, however if it’s not odd number the extra number to the last one.
for example
3856 / 3 1285.33 1285.33 1285.34
Advertisement
Answer
Sounds like a pretty straightforward loop/recursion.
function divideEvenly(numerator, minPartSize) { if(numerator / minPartSize< 2) { return [numerator]; } return [minPartSize].concat(divideEvenly(numerator-minPartSize, minPartSize)); } console.log(divideEvenly(1000, 333));
To get it to be two decimals of currency multiply both numbers by 100 before calling this function then divide each result by 100 and call toFixed(2)
.
function divideCurrencyEvenly(numerator, divisor) { var minPartSize = +(numerator / divisor).toFixed(2) return divideEvenly(numerator*100, minPartSize*100).map(function(v) { return (v/100).toFixed(2); }); } console.log(divideCurrencyEvenly(3856, 3)); //=>["1285.33", "1285.33", "1285.34"]