delphi强制类型转换 怎么写?错误在哪里C++中这样写的 short w;
double t;
        double arr1[5],arr2[5];初始化
    w=0;
    t=0.6;
 arr1[0]=0;
 arr1[1]=0;
 arr1[2]=0;
 arr1[3]=0;
 arr1[4]=0;arr2[0]=0;
arr2[1]=0;
arr2[2]=0;
arr2[3]=0;
arr2[4]=0;
for(int i=0;i<5;i++)
{
arr1[i]=arr2[i]/(double)(w*0.6);
arr2[i]=0;
}
delphi中该怎么写?var i: integer; 
    t:double; 
    arr1: array[1..5] of Double;
    arr2: array[1..5] of Double;
    w: integer = 0;for i := 1 to 5 do
          begin
              arr1[i]=arr2[i]/(double)(w*0.6);
     arr2[i]=0;
          end;请问这样写错在哪里 该如何改正?

解决方案 »

  1.   

    arr1[i]=arr2[i]/(double)(w*0.6);
    这一句提示错误' Invalid floating point operation '
      

  2.   

    delphi里有一套专门的类型转换函数: 
    IntToStr(X);   //   转为字符串 
    Trunc(X);         //   取整等等
      

  3.   

    arr1[i]= Trunc(arr2[i]/(w*0.6));不用强制, Delphi自动将arr2[i]/(w*0.6)转换为浮点类型,所以要赋值给一个浮点变量,否则就回类型出错,编译不通过,将他变成整数赋值给整形变量
      

  4.   

     这样写 还是这个错误' Invalid floating point operation '
      

  5.   

     这样去掉=0初始化 还是这个错误' Invalid floating point operation '
      

  6.   


    编译不出错 但是运行的时候 还是会有这个错误 Invalid floating point operation 
    我的arr1[i]是double型的啊 怎么能把arr2[i]/(w*0.6));取整的值赋值给arr1呢 ?所以还是有错误的 
      

  7.   

    你要保证w<>0!除前,先判断分母,这是好习惯!
      

  8.   

     C++中可以用 atof(value)来把float转成double型的在delphi中如何把float转double呢?
      

  9.   

    atof 是把字符串转换成Double类型的Delphi 你可以试试StrToFloat
      

  10.   

    哦 那是我弄错了 有没有float转double的函数呢
      

  11.   

    Delphi里,没有float这个类型single ,double, real 
      

  12.   

    对滴 delphi根本就没有float这个数据类型
      

  13.   

    arr1[i]= Trunc(arr2[i]/(w*0.6));===================================wow,arr1[i] := Trunc(arr2[i]/(w*0.6));
      

  14.   


    你没仔细看哥贴Trunc函数就是用来取整的
    直接写成arr2[i]/(w*0.6); 不要在里面加上double类型强制转换换,delphi自己就转了,贴源码吧
    double 是64位,float是32位,没有那么高的要求,float足以,直接吧float赋值给double.
      

  15.   

    arr2[i]/(w*0.6); 不要告诉哥程序里w的值是0
      

  16.   


    当然不是 w是个变量 我只是给它赋了个初始值而已 也可以不赋 直接 var w:integer; arr1[i]:=arr2[i]/(w*0.6); 只是这句提示错误依旧
      

  17.   

    arr1[i]:=arr2[i]/(w*0.6);
    “运行的时候 还是会有这个错误 Invalid floating point operation”
    那是因为arr2数组没有初始化,其中可能包含非法的浮点数。
      

  18.   

    是否可以改变w 变量的定义类型为 double