Math Functions – ROUND()

I am going to keep going with my series of short articles or tidbits on Transaction SQL math functions. Most, if not all, of these functions have been in the product before the release of SQL Server 2005.

I am very proud of my daughter making the advance math class in sixth grade. I am dedicating these blogs to her hard class work and love of the subject.

I will be exploring the ROUND() function today. This function takes as input a expression in either exact numeric or approximate numeric form. This does not include the BIT data type. It returns a numeric value rounded to the specified length or precision.

The example below tests the ROUND() function with three different inputs: negative numbers, positive numbers and a null value.

The output from the test is listed below.

This function returns some interesting results if the maximum length is passed. We end up with return value of either a 0 or 1000 depending on how close the number xxx.xx is to the mid point. Since 1000 can no be stored in decimal(5,2) data type, a arithmetic overflow is generated. See the below example.

The output from the example is listed below.

The overflow be avoided by casting the number to a real before rounding!

To recap, this function will return the numeric expression rounded to the specified length or precision.

Related posts

Leave a Comment