var
  i:integer;
begin
  i := power(2,5);
end;我这样写的时候总是出现这样的错误,
[Error] :Incompatible types: 'Integer' and 'Extended'请问我应该怎么把结果换成整形保存到i中呢.

解决方案 »

  1.   

    POWER??????
    INTERGER太小了点吧?用更大的INT64,LONGINT
      

  2.   

    你只要将i变量定义成Extended类型即可呀,INTERGER太小了,所以会报上面的错。
      

  3.   

    我知道是类型不匹配。可是我就是想把他转成integer型的。有什么办法?
      

  4.   

    var
      i:integer;
    begin
      i := Round(Power(2,5));
    end;
      

  5.   

    在窗體上放兩個edit控件,一個按鈕,代碼如下:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      x,y:integer;
      z:real;
    begin
      x:=strtoint(edit1.Text);
      y:=strtoint(edit2.Text);
      z:=power(x,y);
      showmessage(FloatToStr(z));
    end;
      

  6.   

    用pow()可能出现的问题是可能会计算机位数不够,建议可以考虑数组。就是将每次计算的结果保存在数组里面。
      

  7.   

    如果仅仅只是为了求x的y次方(x,y为整数),建议直接使用循环
    z := x;
    for i := 2 to y do
      z := z * x;