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

## Introduction

This area of SchemeServe is more complex than most others. In order for you to make the most out of using our Help Guide for developing your own rates, it would be best if you read all the parts of this guide in order. To help you with this they are listed in numerical order in the “See Also” section of each page. You can click on a link to take you to section 1 and then move through logically at your own pace.

## 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.