Home  |  Delphi .net Home  |  System.Math  |  Round Method
Round  
Method  
Rounds a number to the nearest value using Bankers rules
Math Class
System NameSpace
CF1.  Function Round ( Value : Decimal; ) : Decimal;
CF2.  Function Round ( Value : Double; ) : Double;
CF3.  Function Round ( Value:DecimalValue : Decimal; DecPlaces : Integer; ) : Decimal;
CF4.  Function Round ( Value:DoubleValue : Double; DecPlaces : Integer; ) : Double; Static;
CF : Methods with this mark are Compact Framework Compatible
Description
The Round function rounds a floating point Number to the nearest whole value (integer), or the nearest decimal value of the given number of decimal places.
 
The optional DecPlaces parameter defines this precision, up to a maximum of 28 decimal places.
 
The rounding uses Bankers rules, where an exact half value causes a rounding to an even number:
 
12.4 rounds to  12
12.5 rounds to  12 // Round down to even
12.6 rounds to  13
 
13.4 rounds to  13
13.5 rounds to  14 // Round up to even
13.6 rounds to  14
Notes
Static methods are not methods of an object - they are simply class functions or procedures available at any time.
Microsoft MSDN Links
System
System.Math
 
 
Illustrating Bankers rounding and control of decimal places
program Project1;
{$APPTYPE CONSOLE}

var
  result : Decimal;
begin
  result := System.Math.Round(-1.23);
  Console.WriteLine('Round(-1.23)       = {0}', result.ToString);

  result := System.Math.Round(1.23);
  Console.WriteLine('Round(1.23)        = {0}', result.ToString);

  result := System.Math.Round(-1.5);
  Console.WriteLine('Round(-1.5)        = {0}', result.ToString);

  result := System.Math.Round(1.5);
  Console.WriteLine('Round(1.5)         = {0}', result.ToString);

  result := System.Math.Round(-2.5);
  Console.WriteLine('Round(-2.5)        = {0}', result.ToString);

  result := System.Math.Round(2.5);
  Console.WriteLine('Round(2.5)         = {0}', result.ToString);

  result := System.Math.Round(2.51, 0);
  Console.WriteLine('Round(2.51, 0)     = {0}', result.ToString);

  result := System.Math.Round(2.51, 1);
  Console.WriteLine('Round(2.51, 1)     = {0}', result.ToString);

  result := System.Math.Round(0.123456, 4);
  Console.WriteLine('Round(0.123456, 4) = {0}', result.ToString);

  Console.ReadLine;
end.
Show full unit code
  Round(-1.23)       = -1
  Round(1.23)        = 1
  Round(-1.5)        = -2
  Round(1.5)         = 2
  Round(-2.5)        = -2
  Round(2.5)         = 2
  Round(2.51, 0)     = 3
  Round(2.51, 1)     = 2.5
  Round(0.123456, 4) = 0.1235
 
 
Delphi Programming © Neil Moffatt All rights reserved.  |  Contact the author