请问浮点数应该怎么比较呀?在Pascal语法书上,直接比较都可以,但是在Delphi6里运行总是提示“Invalid Floating Operation”,各位大虾帮忙呀,急!!!在线等待,解决就给分,分不够再加!

解决方案 »

  1.   

    好的,代码如下:
    var
      Y:Array[0..1023]of Double;
      i,maxindex:Integer;
      maxdata:Double;
    begin
      for i:=1 to 1023 do
      begin
        if Y[i]>maxdata then
        begin
          maxdata:=Y[i];
          maxindex:=i;
        end;
      end;
      showmessage(Inttostr(maxindex));
    end;
      

  2.   

    掉了一句:
    for i:=0 to 1023 do
        Y[i]:=sin(10*pi*i/512);
      

  3.   

    不好意思,因为是从一个程序里节选的,所以有些变量都已经声明过并初始化了,比如说:maxdata,maxindex都初始化为0了。
      

  4.   

    你这样是不行的!
    因为Y[i]:=sin(10*pi*i/512);
    这句是取整运算了!
      

  5.   

    你用formatfloat('0.00',xx)做一下格式化再比较一下看看行不行
      

  6.   

    var
      Y:Array[0..1023]of Double;
      i,maxindex:Integer;
      maxdata:Double;
    begin
      for i:=1 to 1023 do
      begin
        if formatfloat('0.00',Y[i])>formatfloat('0.00',maxdata) then
        begin
          maxdata:=Y[i];
          maxindex:=i;
        end;
      end;
      showmessage(Inttostr(maxindex));
    end;
      

  7.   

    向zblaoshu1979(周博)同志学习!