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.
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;