Home  |  Delphi .net Home  |  System.Decimal  |  Round Method
Round  
Method  
Rounds a Decimal number to the nearest value using Bankers rules
Decimal Structure
System NameSpace
CF1.  Function Round ( Value:DecimalValue : Decimal; DecPlaces : Integer; ) : Decimal; Static;
CF : Methods with this mark are Compact Framework Compatible
Description
The Round function rounds a decimal number Value 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
Compare with Floor and Truncate.

Static methods are not methods of an object - they are simply class functions or procedures available at any time.
Microsoft MSDN Links
System
System.Decimal
 
 
Illustrating Bankers rounding and control of decimal places
program Project1;
{$APPTYPE CONSOLE}

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

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

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

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

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

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

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

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

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

  Console.ReadLine;
end.
Show full unit code
  Round(-1.23, 0)    = -1
  Round(1.23, 0)     = 1
  Round(-1.5, 0)     = -2
  Round(1.5, 0)      = 2
  Round(-2.5, 0)     = -2
  Round(2.5, 0)      = 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