谁能给我一个关于变量类型详细说明的链接啊?
还有一个问题可能是变量类型的出错
定义:NS,ETA_OS,EHP,BHP,g,Lwl,Scale,Nyu : double;  
     y:Sample;
这样子的不出错
y[n] := unit1.Form1.ADOQuery8.FieldbyName('CFRY').AsFloat;这样子的出错
y[i] := Lwl / Scale * (unit1.Form1.ADOQuery8.FieldbyName('Fn').AsFloat * Sqrt(g * (Lwl / Scale))) /Nyu;double与float进行运算后值的类型应该是什么啊?
.AsFloat的值的类型是float吗?

解决方案 »

  1.   

    我现在知道了.AsFloat不是float型的,也是double型的
    但我还是不知道是什么意思!
    Sampe是指数组吗?
      

  2.   

    double与float进行运算后值的类型应该是什么啊? 是double
    .AsFloat的值的类型是float吗?  是float
      

  3.   

    不知你的sample类型是定义的什么类型呢?如果是double的不会出错的。
    procedure TForm1.FormCreate(Sender: TObject);
    var
      NS,ETA_OS,EHP,BHP,g,Lwl,Scale,Nyu: double;
      dd: double;  //你这么试试看还有错误吗
    begin
      dd:= Lwl / Scale * (ADOQuery6.FieldbyName('Fn').AsFloat * Sqrt(g * (Lwl / Scale))) /Nyu;
    end;
      

  4.   

    double与float进行运算后值的类型应该是double类型,
    所以.AsFloat的值的类型是double类型,当然你看到的就是double类型了...
      

  5.   

    再问一下
    try
       Y(1)
    except
    else
       Y(2)
    end;
    是怎样运行的啊?是不是Y(1)执行错的话就执行Y(2)啊?
      

  6.   

    delphi里面根本没有定义float类型,楼主定义的sample为real类型数组,其实没必要,因为在delphi里面real就是double,仅仅是个别名而已。
      

  7.   

    try
       Y(1)
    except
    else
       Y(2)
    end;
    是怎样运行的啊?是不是Y(1)执行错的话就执行Y(2)啊?是这样执行,不过楼主写错了。
    try
       Y(1)
    except
       Y(2)
    end;
      

  8.   

    关于try...except,原程序是这样的
    for i := 1 to (n - 1) do
    begin
    try
        y[i] := Lwl / Scale * (unit1.Form1.ADOQuery8.FieldbyName('Fn').AsFloat * Sqrt(g * (Lwl / Scale))) /Nyu;
    except
    else
        y[i] := 0;
    end;
    因为Nyu可能会为零,所以会有出错对话框,点了确定后会执行y[i] := 0;
    我想不让出错对话框出现可以做到吗?(在不改变try...except语句结构的情况下)