---
url: >-
  /statelake/scripting-reference/functions-and-procedures/numeric-functions/round2br.md
---

# Round2BR

**Round2BR** is combination of the function **Round** and **Round2**, and returns **aValue** rounded to the number of decimal places specified by **aDigit**.

The rounding uses banker’s rules where an exact half value of .5 causes rounding up to the next even integer value, so 1.5 would round up to 2 and 6.5 would round down to 6.

* 0.5 rounds down to 0.
* 1.5 rounds up to 2.
* 86.5 rounds down to 86.
* 34.5 rounds down to 34.

Other decimal fractions round as you would expect -

* 2.4 would round down to 2.
* 0.4 would round down to 0.
* 0.6 would round up to 1.
* 4.8 would round up to 5.
* 5.3 would round down to 5.

Declaration: Function Round2BR(aValue : Extended; aDigit : integer) : Extended

Examples as below.

```pascal
Procedure OnMapEvent(var Value:variant);
begin
   Value := Round2BR(3.4,2);         // result is 3.4
   Value := Round2BR(3.5,2);         // result is 3.5
   Value := Round2BR(123.454,2);     // result is 123.45
   Value := Round2BR(123.455,2);     // result is 123.46
   Value := Round2BR(123.456,2);     // result is 123.46
   Value := Round2BR(745.4546,3);    // result is 745.455
   Value := Round2BR(745.4545,3);    // result is 745.454
   Value := Round2BR(80.374,2);      // result is 80.37
   Value := Round2BR(80.375,2);      // result is 80.38
   Value := Round2BR(80.265,2);      // result is 80.26

  LogInfo(FloatToStr(Round2BR(0.4,0)));         // result is 0
  LogInfo(FloatToStr(Round2BR(0.5,0)));         // result is 0
  LogInfo(FloatToStr(Round2BR(0.6,0)));         // result is 1
  LogInfo(FloatToStr(Round2BR(1.5,0)));         // result is 2
  LogInfo(FloatToStr(Round2BR(2.4,0)));         // result is 2
  LogInfo(FloatToStr(Round2BR(4.8,0)));         // result is 5
  LogInfo(FloatToStr(Round2BR(5.3,0)));         // result is 5
  LogInfo(FloatToStr(Round2BR(86.5,0)));        // result is 86
  LogInfo(FloatToStr(Round2BR(34.5,0)));        // result is 34
end;
```
