我的代码是计算一组数值放到数组中。xy : array[1..21] of Double;
i : Integer;
for i := 1 to 21 do
    begin
      xy[i] :=  Power(1.0 -  i * 0.1 / 2.1,3/2);
    end;运行时提示: invalid floating point operation
如果单个计算例如:xy[1] :=  Power(1.0 -  1 * 0.1 / 2.1,3/2);却不会报错,是什么原因?

解决方案 »

  1.   

    for i := 1 to 21 do 
        begin 
          xy[i] :=  Power(1.0 -  i * 0.1 / 2.1,3/2); 
        end; 
    测试通过,是不是别的地方出错
      

  2.   

    我的代码是计算一组数值放到数组中。 xy : array[1..21] of Double; 
    i : Integer; 
    for i := 0 to 20 do 
        begin 
          xy[i] :=  Power(1.0 -  i * 0.1 / 2.1,3/2); 
        end; 
      

  3.   

    不是数组声明的问题,array[1..21] of Double,下标从1开始
      

  4.   

     呵呵,還真沒注意; 查了下,看這個:、  
    1.0 -  i  * 0.1 / 2.1 = -1.0842021725e-19
    DELPHI  說明:Power raises Base to any power. For fractional exponents or exponents greater than MaxInt, Base must be greater than 0.