var
   i:integer
begin
   i:=i/2;   {出错了!!!5}
end;var 
   i:integer
   tmp:real;
begin
   tmp:=i;
   tmp:=tmp/2;
   i:=tmp/2;  {出错了!!!5}
end;
为什么integer不能除?var 
   i:integer
   tmp:real;
begin
   tmp:=i;
   tmp:=tmp/2;
   i:=Int(tmp/2);  {出错了!!!5}
end;如何才能象C一样对进制转换那么方便?

解决方案 »

  1.   

    注意/和div的区别
    一个是整数的除, 一个是浮点数的除
      

  2.   

    这很简单,你还没搞懂Delphi是强类型语言
    var
       i:integer
    begin
       i:=i div 2; //div 不使用/的
    end;var 
       i:integer
       tmp:real;
    begin
       tmp:=i;
       tmp:=tmp/2;
       i:=Round(tmp/2);  //类型转换!
    end;
      

  3.   

    program Project1;var
      i:integer;
    begin
       i := 10;
       i := round(i*1.0 / 2);   //浮点运算
       writeln('The result:',i);
       readln;
    end.
      

  4.   

    int()返回值是浮点型,而i是整型,类型不匹配
    例:
    var
    i : integer;
    f : single;
    begin
      i:=int(2.3);  //错!
      f:=int(2.3);  //对!
    end;