The Math.Round
method will round the value 1.5 to
2; however, the value 2.5 will also be rounded to 2 using this
method. Always round to the greater number in this type of situation
(e.g., round 2.5 to 3). Conversely, you might want to always round to
the lesser number (e.g., round 1.5 to 1).
Use the static
Math.Floor
method to always round up when a value
is halfway between two whole numbers:
public static double RoundUp(double valueToRound) { return (Math.Floor(valueToRound + 0.5)); }
Use the following technique to always round down when a value is halfway between two whole numbers:
public static double RoundDown(double valueToRound) { double floorValue = Math.Floor(valueToRound); if ((valueToRound - floorValue) > .5) { return (floorValue + 1); } else { return (floorValue); } }
The static Math.Round
method rounds to the
nearest even number (see Recipe 1.9 for more
information). However, there are some times that you do not want to
round a number in this manner. The static
Math.Floor
method can be used to allow for
different manners of rounding.
Note that the methods used to round numbers in this recipe do not round to a specific number of decimal points; rather, they round to the nearest whole number.
See Recipe 1.9; see the “Math Class” topic in the MSDN documentation.