user70192
user70192

Reputation: 14204

C# - Rounding Down to Nearest Integer

I have a C# app that is calculating some numbers. I need to round down.

var increment = 1.25;
var result = 50.45 - 23.70;    // equals 26.75
int interval = difference / increment; // result is 21.4. However, I just want 21

I have to get the interval to an int. At the same time, I cannot just use Convert.ToInt32 because of its rounding behavior. I always want the lowest whole number. However, I'm not sure how.

Upvotes: 61

Views: 161134

Answers (4)

monoh_
monoh_

Reputation: 1039

You can also just simply cast the result to int. This will truncate the number.

int interval = (int)(difference / increment);

Upvotes: 33

user5914638
user5914638

Reputation:

The Math.Floor() function should do the trick:

int interval = (int)Math.Floor(difference / increment);

See also: https://msdn.microsoft.com/de-de/library/e0b5f0xb%28v=vs.110%29.aspx

Upvotes: 10

Alexander Derck
Alexander Derck

Reputation: 14488

Use the static Math class:

int interval = (int)Math.Floor(difference/increment);

Math.Floor() will round down to the nearest integer.

Upvotes: 31

praveen
praveen

Reputation: 1375

Just try this..

 int interval = Convert.ToInt32(Math.Floor(different/increment));

Upvotes: 97

Related Questions