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"]