## Welcome to the new DelphiDabbler Code Library Documentation.

This is a new site that's currently running on alpha code. There are going to be bugs. If you discover any, please report them on the site's issues page (GitHub account required). Thanks.

Warning: Many URLs are going to change. Refer to the README file to discover which library project's documentation has been completed.

# TruncateToMultiple method

Project: Fractions

Unit: DelphiDabbler.Lib.Fractions

Record: TFraction

Applies to: ~>0.1

``````function TruncateToMultiple(const F: TFraction): TFraction;
``````

## Description

This method truncates the fraction to the nearest whole number multiple of the given fraction F in the direction of zero. It returns the result.

For example, if you truncate `11/16` to a whole number multiple of `1/8` the result is `5/8`.

### Example

This example displays a sequence of ranges of fraction that converge towards π

``````var
FRangeLo, FRangeHi, FMult, FPi: TFraction;
N: Integer;
begin
Memo1.Clear;
FPi := PI;  // Pi is automatically converted to fraction
for N := 1 to 20 do
begin
FMult := TFraction.Create(1, N);
FRangeLo := FPi.TruncateToMultiple(FMult);
FRangeHi := FRangeLo + FMult; // this value will be > Pi
FRangeHi := FRangeHi.Convert(FRangeLo.Denominator div FRangeHi.Denominator);
WriteLn(
Format(
'Pi in falls in range [%d/%d..%d/%d]',
[
FRangeLo.Numerator, FRangeLo.Denominator,
FRangeHi.Numerator, FRangeHi.Denominator
]
)
);
end;
end;
``````