Skip to main content

RoundAs

function RoundAs(const aRountType: string; aValue: Extended; aDP: Integer): Extended;

Example​

procedure ScriptEvent(var Value: variant);
begin
Value := RoundAs('ROUND2BR', 12.25, 1); // normally 12.2
end;

Usage​

RoundAs selects one of three named Velox rounding methods or returns the input unchanged for any other token.

Parameters

NameTypeDescription
aRountTypestring, constSelector. Recognized after upper-casing as exactly ROUND2UP, ROUND2BR or ROUND2.
aValueExtendedValue passed to the selected helper or returned unchanged.
aDPIntegerDecimal-place argument passed through unchanged.

Selection guidance

Validate configuration tokens against the three exact names before calling. For a fixed design-time policy, calling the selected helper directly is clearer and avoids silent fallback.

Additional Technical Info​

RoundAs selects one of the three Velox rounding helpers by an ASCII token. Comparison is case-insensitive through UpperCase, but no trim is performed. Any unrecognized token silently returns aValue unchanged.

The public parameter name contains the source typo aRountType; scripts must follow the positional/type contract and documentation should preserve that spelling. The example is fictional and source-reviewed only.

Returns and dispatch table

Selector after UpperCaseOperation
ROUND2UPRound2Up(aValue, aDP)
ROUND2BRRound2BR(aValue, aDP)
ROUND2Round2(aValue, aDP)
anything elseaValue unchanged

Implementation details and quirks

  • UpperCase makes ordinary ASCII letter case irrelevant: 'round2br' is recognized.
  • No whitespace is removed. ' ROUND2BR', 'ROUND2BR ' and an empty string all take the silent unchanged fallback.
  • No warning, Boolean success result or log item indicates that the selector was unknown. A spelling/configuration error can therefore look like successful rounding.
  • The function evaluates all three arguments before dispatch, as with any normal Pascal function call.
  • Every behavior/error of the selected helper is inherited: Round2's six-tenths threshold, Round2BR's Double/current-mode conversion, and Round2Up's locale/text/negative-place hazards.
  • An unknown selector avoids all helper arithmetic and returns the original bits/value, including NaN/infinity.

Side effects

The function and its three targets have no intended external side effect. Exceptions from token conversion or a selected algorithm propagate.

Related entries

  • Round is the PascalScript whole-number operation and is not selectable here.

External references

Created 2026-07-15