Dictionary Definition
rounding n : (mathematics) a miscalculation that
results from rounding off numbers to a convenient number of
decimals; "taxes are rounded off to the nearest dollar but the
rounding error is surprisingly small" [syn: rounding
error]
User Contributed Dictionary
Extensive Definition
Rounding is the process of reducing the number of
significant
digits in a number. The result of rounding is a "shorter"
number having fewer nonzero digits yet similar in magnitude. The
result is less
precise but easier to use.
For example: 73 rounded to the nearest ten is 70,
because 73 is closer to 70 than to 80.
Rounding can be analyzed as a form of
quantization.
There are many different rules that can be
followed when rounding. Some of the more popular are described
below.
Common method
This method is commonly used in mathematical applications, for example in accounting. It is the one generally taught in elementary mathematics classes. This method is also known as Symmetric Arithmetic Rounding or RoundHalfUp (Symmetric Implementation) Decide which is the last digit to keep.
 Increase it by 1 if the next digit is 5 or more (this is called rounding up)
 Leave it the same if the next digit is 4 or less (this is called rounding down)
Examples:
 3.044 rounded to hundredths is 3.04 (because the next digit, 4, is less than 5).
 3.045 rounded to hundredths is 3.05 (because the next digit, 5, is 5 or more).
 3.0447 rounded to hundredths is 3.04 (because the next digit, 4, is less than 5).
For negative numbers the absolute
value is rounded.
Examples:
 −2.1349 rounded to hundredths is −2.13
 −2.1350 rounded to hundredths is −2.14
Roundtoeven method
This method is also known as unbiased rounding, convergent rounding, statistician's rounding, Dutch rounding or bankers' rounding. It is identical to the common method of rounding except when the digit(s) following the rounding digit starts with a five and has no nonzero digits after it. The new algorithm is: Decide which is the last digit to keep.
 Increase it by 1 if the next digit is 6 or more, or a 5 followed by one or more nonzero digits.
 Leave it the same if the next digit is 4 or less
 Otherwise, if all that follows the last digit is a 5 and possibly trailing zeroes; then change the last digit to the nearest even digit. That is, increase the rounded digit if it is currently odd; leave it if it is already even.
With all rounding schemes there are two possible
outcomes: increasing the rounding digit by one or leaving it alone.
With traditional rounding, if the number has a value less than the
halfway mark between the possible outcomes, it is rounded down; if
the number has a value exactly halfway or greater than halfway
between the possible outcomes, it is rounded up. The roundtoeven
method is the same except that numbers exactly halfway between the
possible outcomes are sometimes rounded up—sometimes
down.
Although it is customary to round the number 4.5
up to 5, in fact 4.5 is no nearer to 5 than it is to 4 (it is 0.5
away from both). When dealing with large sets of scientific or
statistical data, where trends are important, traditional rounding
on average biases the data upwards slightly. Over a large set of
data, or when many subsequent rounding operations are performed as
in digital
signal processing, the roundtoeven rule tends to reduce the
total rounding error, with (on average) an equal portion of numbers
rounding up as rounding down. This generally reduces upwards
skewing of the result.
Roundtoeven is used rather than roundtoodd as
it reduces rounding to a final digit of 5, and so reduces the
likelihood of error resulting from double rounding.
Examples:
 3.016 rounded to hundredths is 3.02 (because the next digit (6) is 6 or more)
 3.013 rounded to hundredths is 3.01 (because the next digit (3) is 4 or less)
 3.015 rounded to hundredths is 3.02 (because the next digit is 5, and the hundredths digit (1) is odd)
 3.045 rounded to hundredths is 3.04 (because the next digit is 5, and the hundredths digit (4) is even)
 3.04501 rounded to hundredths is 3.05 (because the next digit is 5, but it is followed by nonzero digits)
History
The Roundtoeven method has been the ASTM (E29) standard since 1940. The origin of the terms unbiased rounding and statistician's rounding are fairly selfexplanatory. In the 1906 4th edition of Probability and Theory of Errors http://historical.library.cornell.edu/cgibin/cul.math/docviewer?did=05170001&view=50&frames=0&seq=48 Robert Woodward called this "the computer's rule" indicating that it was then in common use by human computers who calculated mathematical tables. Churchill Eisenhart's 1947 paper "Effects of Rounding or Grouping Data" (in Selected Techniques of Statistical Analysis, McGrawHill, 1947, Eisenhart, Hastay, and Wallis, editors) indicated that the practice was already "well established" in data analysis.The origin of the term bankers' rounding is more
obscure. If this rounding method was ever a standard in banking,
the evidence has proved extremely difficult to find. To the
contrary, section 2 of the European Commission report The
Introduction of the Euro and the Rounding of Currency Amounts
http://ec.europa.eu/economy_finance/publications/publication1224_en.pdf
suggests that there had previously been no standard approach to
rounding in banking.
Other methods of rounding
Other methods of rounding exist, but use is mostly restricted to computers and calculators, statistics and science. In computers and calculators, these methods are used for one of two reasons: speed of computation or usefulness in certain computer algorithms. In statistics and science, the primary use of alternate rounding schemes is to reduce bias, rounding error and drift—these are similar to roundtoeven rounding. They make a statistical or scientific calculation more accurate.Ease of computation
Other methods of rounding include "round towards zero" (also known as truncation) and "round away from zero". These introduce more roundoff error and therefore are rarely used in statistics and science; they are still used in computer algorithms because they are slightly easier and faster to compute. Two specialized methods used in mathematics and computer science are the floor (always round down to the nearest integer) and ceiling (always round up to the nearest integer).Statistical accuracy
Stochastic rounding is a method that rounds to the nearest integer, but when the two integers are equidistant (e.g., 3.5), then it is rounded up with probability 0.5 and down with probability 0.5. This reduces any drift, but adds randomness to the process. Thus, if you perform a calculation with stochastic rounding twice, you may not end up with the same answer. The motivation is similar to statistician's rounding.Rounding in an exact computation
The objective of rounding is often to get a number that is easier to use, at the cost of making it less precise. However, for evaluating a function with a discrete domain and range, rounding may be involved in an exact computation, e.g. to find the number of Sundays between two dates, or to compute a Fibonacci number. In such cases the algorithm can typically be set up such that computational rounding errors before the explicit rounding do not affect the outcome of the latter. For example, if an integer divided by 7 is rounded to an integer, a computational rounding error up to 1/14 in the division (which is much more than is possible in typical cases) does not affect the outcome. In the case of rounding down an integer divided by 7 this is not the case, but it applies e.g. if the number to be rounded down is an integer plus 1/2, divided by 7.Round functions in programming languages
 Java
 BigDecimal: Supports "round up", "round down", "round floor", "round ceiling", "round half up", "round half down", "round half even" and even a "rounding unnecessary" mode.
 C
 C99
specifies (in ):
 round(): round to nearest integer, halfway away from zero
 rint(), nearbyint(): round according to current floatingpoint rounding direction
 ceil(): smallest integral value not less than argument
 floor(): largest integral value not greater than argument
 trunc(): round towards zero
 The current floatingpoint rounding direction may, depending on implementation, be retrieved and set using the fegetround()/fesetround() functions defined in ; the available directions are specified to be at least those in IEEE 854 (see IEEE 754#Rounding floatingpoint numbers) which include roundtoeven, rounddown, roundup, and roundtozero.
 C99
specifies (in ):

Pascal:
 Round and RoundTo use banker's rounding
 Str, Write and FloatToStr don't use banker's rounding
 Ceil(): smallest integral value not less than argument
 Floor(): largest integral value not greater than argument
 Trunc(): round towards zero
 PHP:
 round(3.5) gives 4.
 round(8.7352,3) gives 8.735.
 round(4278.5,2) gives 4300.

Python:
 Current versions 2.5.x and prior use common rounding for POSITIVE numbers: round(0.5) is 1.0.
 Note that negative integer division is not rounded towards zero but always rounded down: 7/3=2, 7/3=3.
 New version (3.0 aka Python 3000) may use roundtoeven (else common rounding).
 Transitional version 2.6.x will be compatible with 2.5 (but is not yet as of Jan 08).
 As of 2.4, Python includes class Decimal in module decimal.
 Class Decimal provides exact numerical representation and several rounding modes.
 JavaScript:
 Uses Asymmetric Arithmetic Rounding
 Math.round (3.5) gives 3.

Visual Basic for Applications:
 Uses RoundHalfEven (Banker's Rounding)
 ? Round(2.5, 0) gives 2.
 http://support.microsoft.com/kb/194983
 Microsoft
SQL Server:
 Uses either Symmetric Arithmetic Rounding or Symmetric Round Down (Fix) depending on arguments
 SELECT Round(2.5, 0) gives 3.
 Microsoft
Excel:
 Uses Symmetric Arithmetic Rounding
 = ROUND(2.5, 0) gives 3.
 = ROUND(3.5, 0) gives 4.
 = ROUND(3.5, 0) gives 4
 Microsoft .NET
Framework
 The Convert.ToInt32(Double) function and similar forms uses Banker's Rounding.
 The Math.Round(...) overloads use Banker's Rounding by default, but .NET 2.0 added an overload that allows the developer to specify the desired type of rounding.

C#
 The (int) cast truncates the fractional part of the number, like System.Math.Floor(). Note that this is different from using the Convert class in the .NET Framework!
 Framework 2.0 introduced an overload of the System.Math.Round() function that allows the rounding type to be specified. The definition is here: http://msdn2.microsoft.com/enus/library/ms131274(vs.80).aspx. It also introduced System.Decimal.Round static method which, by default, performs "banker's rounding" of a Decimal. Other rounding modes can used with this method by using the overload that takes a System.MidpointRounding enumeration (http://msdn2.microsoft.com/enus/library/system.midpointrounding(VS.80).aspx).
The Round() function is not implemented in a
consistent fashion among different Microsoft products for
historical reasons. How To Implement Custom
Rounding Procedures
Negative zero in meteorology
In meteorology, temperatures between 0.0 and −0.5 degrees (exclusive) may be rounded to −0 to indicate a temperature which is below zero, but not cold enough to be rounded to −1 or less. It is used especially in the Celsius scale, where below zero indicates freezing. It may be used, for example, to allow tallying of belowzero days.See also
External links
 An introduction to different rounding algorithms that is accessible to a general audience but especially useful to those studying computer science and electronics.
rounding in Catalan: Arrodoniment
rounding in Czech: Zaokrouhlení
rounding in Danish: Afrunding
rounding in German: Rundung
rounding in Spanish: Redondeo
rounding in French: Arrondi
rounding in Korean: 반올림
rounding in Italian: Arrotondamento
rounding in Hebrew: עיגול (פעולה)
rounding in Dutch: Afronden
rounding in Japanese: 端数処理
rounding in Norwegian: Avrunding
rounding in Polish: Zaokrąglanie
rounding in Portuguese: Arredondamento
rounding in Russian: Округление
rounding in Slovenian: Zaokrožanje
rounding in Swedish: Avrundning
rounding in Chinese: 數值修約規則