MSB - 10 months ago 55

Javascript Question

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`

`100.2`

`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

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

Source (Stackoverflow)