这是一个测试驱动器空间的程序,可是他得出的结果怎么不合实际的一样,百分比都是百分之一百多。请问错在那里?
unit disdtest;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Spin;type
  TForm1 = class(TForm)
    SpinEdit1: TSpinEdit;
    procedure SpinEdit1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;
  s1,s2,ss:string;
  AmtFree,Total,N_parameter:integer;
implementation{$R *.dfm}procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
   N_parameter:=spinedit1.Value;
   AmtFree:=DiskFree(N_parameter);
   total:=DiskSize(N_parameter);
   case N_parameter of
      0: ss:='当前';
      1: ss:='A';
      2: ss:='C';
      3: ss:='D';
      4: ss:='E';
      5: ss:='F';
      6: ss:='G';
    else
        ss:='无次驱动器';
   end;
   if ss='无次驱动器' then
      showmessage(ss)
   else
      s1:=ss+'驱动器上有'+floatToStr(round(AmtFree/Total*100))+'%的剩余空间';
      s2:=IntToStr(AmtFree div 1024)+ 'k bytes free';
      canvas.TextOut(60,10,s1+s2);
end;end.