# Difference between revisions of "Advanced Ratings: Rounding Values"

There are a number of ways of rounding results in SchemeServe, the recommended methods are to use the CEILING function which rounds up and the FLOOR function which rounds down.

It's important to define where the decimal point lands for accurate rounding.

E.g. 101 round up to 200 = CEILING(101/100.0) * 100 = CEILING(1.01) * 100

You can also use the expression Math.Round(number). However it is important to understand that the default behaviour of this expression in SchemeServe is to round to the nearest even number. That means 1.5 and 2.5 both round to two. The reason for this is that because most numbers tend to be positive rounding away from zero (the standard form of rounding) is statistically less acccurate than rounding to an even number.

If you wish to round away from zero you must use this expression: Math.Round(Number, MidpointRounding.AwayFromZero)

If you are looking for financially accurate rounding the correct way to handle the operation is to mutiply the number, truncate it and then divide it back again. (i.e. for 2 decimal places n = int(v * 100 +.5) / 100).

It's important to fully understand all the options for rounding before calculating ratings for use in SchemeServe otherwise the answers to your expressions may not be as you would assume.