입력값을 가지고 소수이하 2자리까지 남기고 3번째자리부터는 잘라버릴려고 합니다. var a : real; begin a := strtofloat(edit1.text); // 3.3) or (a < 5.2) then showmessage('ok'); 이렇게하면 a값에 3.2999999999927 이라는 값이 입...
Gruz
•
2000.10.25 05:30
전호영 wrote:
> 입력값을 가지고 소수이하 2자리까지 남기고 3번째자리부터는 잘라버릴려고 합니다.
> v...
> 입력값을 가지고 소수이하 2자리까지 남기고 3번째자리부터는 잘라버릴려고 합니다.
> var
> a : real;
> begin
> a := strtofloat(edit1.text); //<-- 3.3입력
>
> if (a > 3.3) or (a < 5.2) then
> showmessage('ok');
> 이렇게하면 a값에 3.2999999999927 이라는 값이 입력됩니다.
> 이것을 비교할 수 있는 방법이 없을까요?
> 고수님들의 현명한 조언 부탁드립니다.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
function myRealTrunc(x:real;y:integer):real;
var
iTmp:integer;
begin
iTmp:=round(x*y);
result:=iTmp/y;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
iTmp:integer;
rTmp:real;
begin
rTmp:=StrToFloat(edit1.text);
iTmp:=StrToInt(edit2.text);
showmessage(FloatToStr(myRealTrunc(rTmp,iTmp)));
end;
end.