実現したいこと
Trunc関数の引数により、結果が変わってしまう。
前提
動作確認用のコードをつくりました
FormにStringGridがひとつ、Editをひとつ、Buttonを二つ貼り付けています。
procedure TForm1.Button1Click(Sender: TObject);
var
I : Integer;
D : Double;
begin
D := 0;
for I := 0 to 3 do
begin
StringGrid1.Cells[1 + I, 1] := FloatToStr(F[I]);
D := D + F[I];
end;
Edit1.Text := FloatToStr(Trunc(D/4*10));
end;
procedure TForm1.Button2Click(Sender: TObject);
var
D: Double;
begin
D:=22;
Edit1.Text := FloatToStr(Trunc(D/4*10));
end;
procedure TForm1.FormCreate(Sender: TObject);
var
I : INteger;
D : Double;
begin
F[0] := 5.3;
F[1] := 5.4;
F[2] := 5.6;
F[3] := 5.7;
end;
Truncの動作で困っています。
Button1Clickでは、Truncに渡すための引数を加算しています。
Button2Clickでは、引数に直接値を入力しています。
それぞれ引数を渡してTruncをかけると、答えが変わってしまいます。
テストコードはDelphi13で記述しました。
原因を特定したいです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
2026/09/09 02:15