System.Math.RoundTo
Delphi
const ADigit: TRoundToEXRangeExtended): Extended;
C++
extern DELPHI_PACKAGE System::Extended __fastcall RoundTo(const System::Extended AValue, const TRoundToEXRangeExtended ADigit);
Properties
Type | Visibility | Source | Unit | Parent |
---|---|---|---|---|
function | public | System.Math.pas System.Math.hpp |
System.Math | System.Math |
Description
Rounds a floating-point value to a specified digit or power of ten using "Banker's rounding".
Call RoundTo to round AValue
to a specified power of ten.
AValue
is the value to round.
ADigit
indicates the power of ten to which you want AValue
rounded. It can be any value in the range from –20 through 20.
RoundTo uses "Banker's Rounding" to determine how to round values that are exactly midway between the two values with the desired number of significant digits. This method rounds to an even number if AValue
is not nearer to either value.
The following examples illustrate the use of RoundTo:
Expression |
Value |
---|---|
|
1235000 |
|
1.12 |
|
1.12 |
|
1.23 |
Attention: Binary numbers cannot represent decimal real-numbers exactly. You may not get the expected result if
Digit
is a negative number. For example, the decimal real-number, "1.245"
is represented as "1.245000000000000106..."
in Double-type floating-point numbers. RoundTo(1.245, -2)
will return 1.25
, not 1.24
, because the number is larger than exactly midway between the two values that have the desired number of significant digits.