6

This program calculates the amount of instances an event occurs within time. The issue is that when I'm getting decimal numbers the program does not round how I want it to, for example: if i divide 7/5 i get 1, is it possible to get 2? the 'double' answer yields: 1.4.

static void Main(string[] args) {
    var kim = 7/5 ;
    Console.WriteLine(kim);
    Console.ReadKey();
}

Any division I make I want it to round up.

For example: 7/5 = 1.4, but I want it to be 2; 5/2 = 2.5, but I want it to be 3, etc.

pushkin
  • 9,575
  • 15
  • 51
  • 95
Adan
  • 453
  • 1
  • 10
  • 27

2 Answers2

9

7/5 is an integer division. It will always round down. You will need a double/decimal division and Math.Ceiling to round up:

Math.Ceiling(7.0 / 5.0);  // return 2.0

If your input values are ints, you will have to cast at least one of them to double

Math.Ceiling((double)7 / 5);
Jakub Lortz
  • 14,616
  • 3
  • 25
  • 39
3

As Jakub said, you can use Math.Ceiling, or another option is to use the modulo. If the modulo is greater than 0, it means that there was some remainder and therefore you want to add 1, otherwise, you just add 0.

static void Main(string[] args)
{
    var kim = 7/5 + (7%5 > 0 ? 1 : 0);

    Console.WriteLine(kim);
    Console.ReadKey();
}
Leejay Schmidt
  • 1,193
  • 1
  • 15
  • 24