Skip to content
Advertisement

divide number with decimals javascript

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.

Here you go

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).

Like so

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"]
User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement