System.Math.RoundTo
Delphi
const ADigit: TRoundToEXRangeExtended): Extended;
C++
extern DELPHI_PACKAGE System::Extended __fastcall RoundTo(const System::Extended AValue, const TRoundToEXRangeExtended ADigit);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | System.Math.pas System.Math.hpp |
System.Math | System.Math |
説明
"Banker's Rounding" と呼ばれる丸め方法を用いて、浮動小数点値を指定の位(10 の累乗)に丸めます。
RoundTo を呼び出すと、AValue
を指定の位(10 の累乗)に丸めることができます。
AValue
は丸めの対象となる値です。
ADigit
は、AValue
を丸める位を示します。-20 から 20 の範囲の任意の値をとることができます。
RoundTo は、"Banker's Rounding" と呼ばれる丸め方法を用いて、目的とする有効位を持つ 2 つの値のちょうど中間にある値を丸める方法を決定します。 この方法では、AValue
が両方の値のちょうど中間にある場合は、偶数に丸めます。
以下の例は、RoundTo の使い方を示します:
式 |
値 |
---|---|
|
1235000 |
|
1.12 |
|
1.12 |
|
1.23 |
注意: 2 進数は 10 進数の実数を正確に表すことができません。
Digit
が負の数の場合、期待した結果が得られない可能性があります。たとえば、10 進実数 "1.245"
は、Double 型浮動小数点数では "1.245000000000000106..."
と表現されます。RoundTo(1.245, -2)
は、必要な有効桁数を持つ 2 つの値のちょうど中間よりも、数値が大きくなるため、1.24
ではなく 1.25
を返します。