Returns the value of X rounded to the nearest whole number.
function Round(X: Extended): Int64;
Int64 Round(Extended X);
In Delphi, the Round function rounds a real-type value to an integer-type value.
X is a real-type expression. Round returns an Int64 value that is the value of X rounded to the nearest whole number. If X is exactly halfway between two whole numbers, the result is always the even number. This method of rounding is often called "Banker's Rounding".
If the rounded value of X is not within the Int64 range, a runtime error is generated, which can be handled using the EInvalidOp exception.
Delphi Examples:
{ This example displays the Cosine of any value between 0 and 12. Since the scrollbar position is an integer between the scrollbar min and max, multiply the range and divide the position to fine tune it. With the scrollbar selected use the left and right buttons to change the position by 1E-6. Or use the Dec function to decrement (or increment) by a specific amount. } procedure TForm1.Button1Click(Sender: TObject); var new : Integer; begin new := ScrollBar1.Position; System.Dec(new, Round(StrToFloat(Edit3.Text)*1000000)); ScrollBar1.Position := new; Edit1.Text := FloatToStr(ScrollBar1.Position/1000000); Edit2.Text := FloatToStr(Cos(ScrollBar1.Position/1000000)); end; procedure TForm1.FormCreate(Sender: TObject); begin ScrollBar1.Max := Round(Pi * 4000000); // 4 * Pi end; procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer); begin Edit1.Text := FloatToStr(ScrollPos/1000000); Edit2.Text := FloatToStr(Cos(ScrollPos/1000000)); end;
{ This example illustrates the rules for rounding positive and negative real numbers to integers. } procedure TForm1.Button1Click(Sender: TObject); var S, T: string; begin Str(1.4:2:1, T); S := T + ' rounds to ' + IntToStr(Round(1.4)) + #13#10; Str(1.5:2:1, T); S := S + T + ' rounds to ' + IntToStr(Round(1.5)) + #13#10; Str(-1.4:2:1, T); S := S + T + ' rounds to ' + IntToStr(Round(-1.4)) + #13#10; Str(-1.5:2:1, T); S := S + T + ' rounds to ' + IntToStr(Round(-1.5)); MessageDlg(S, mtInformation, [mbOk], 0, mbOk); end;
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
|
What do you think about this topic? Send feedback!
|