我也一个这样的计算公式
s:=-0.22Ln(k)+0.23我在 delphi 中这样表示可以吗s:=-0.22*Ln(k)+0.23s和k都是浮点型数组,
象我那样写就有麻烦了啊 会出现除数为0的错误!!应该如何写

解决方案 »

  1.   

    try
      s := -0.22 * Ln(k) + 0.23;
    except
      S := 0;
      // 或者MessageBox
      // 或者Raise;
    end;
      

  2.   

    Try
    s:=-0.22*Ln(k)+0.23
    Except
    s:=???
    End;
      

  3.   

    但是还是有 这个错误  'Floating point division by zero'.
    for i:=1 to 10 do
     for j;=1 to 9 do
      for k:=1 to 5 do
        begin
          try
            s[i][j][k]:=-0.22*Ln(k[i][j][k])+0.23;
          Except
            
             s[i][j][k]:=0;
        end;
      

  4.   

    调试时会出现错误提示,但编译后运行就没有错误提示了。
    其实你可以先判断k[i][j][k]的值啊,值不等于0才执行运算。
    还有,数组k和序数k同名,我不知道会不会有什么问题,但不管怎样,为了不至混淆,应该尽量避免