Search code examples
c#divisionaccounting

Evenly divide a dollar amount (decimal) by an integer


I need to write an accounting routine for a program I am building that will give me an even division of a decimal by an integer. So that for example:

$143.13 / 5 =

28.62
28.62
28.63
28.63
28.63

I have seen the article here: Evenly divide in c#, but it seems like it only works for integer divisions. Any idea of an elegant solution to this problem?


Solution

  • Calculate the amounts one at a time, and subtract each amount from the total to make sure that you always have the correct total left:

    decimal total = 143.13m;
    int divider = 5;
    while (divider > 0) {
      decimal amount = Math.Round(total / divider, 2);
      Console.WriteLine(amount);
      total -= amount;
      divider--;
    }
    

    result:

    28,63
    28,62
    28,63
    28,62
    28,63