Q&A

  • 자료변환 관련 질의
procedure a
var
   wDev : Double
   wArray :array of Double

begin

wDev := StdDev(wArray );

//아래부분에서 에러가 나는데 해결 방법은?
//wDev값은 8.209631928e-317 이런 값이 나오는데

a.Caption := Format('%6s',[FormatFloat('##0.0',wDev)]);

end;

도움 부탁드립니다.
1  COMMENTS
  • Profile
    이중철 2005.11.11 22:17
    변수타입에 세미콜론 없는것으로 뭐라고 말씀 드리는 것이 아닙니다.

    SetLength 어디에 있나요?

    설마 표준편차의 공식을 모르시고 질문하시나요?
    -- 표준편차쪽으로 질문하신지 일주일이 넘었는데 그 계산공식을 모른다는 것 자체가 이해 안감

    우리가 잘 알고 있는 평균도 계산공식이 합계 / 갯수 입니다.

    질문하신 예문은 평균 계산도 안되는 문장입니다.

    var  
      i , cnt : integer;
      wArray :array of Double;
      sum : double;
    begin
      sum := 0;
      cnt := 0;
      for i := 0 to High(wArray) do
      begin
        sum := sum + wArray[i];
        inc(cnt);
      end;
      
       ShowMessage(floattostr(sum/cnt));  <= 헉 여기서 에러 났네 왜 그렇죠 <= 이 질문가 다른 점 있나요

    end;


    그리고 wDev값에 8.209631928e-317 있을때 절대 Format('%6s',[FormatFloat('##0.0',wDev)])

    에서 에러 나지 않습니다.

    질문하실 때  성의있는 예문 부탁드립니다.

    그리고 질문 하시기 전에 한번 테스트좀 해보시고요 문장도 길지 않는데 그냥 폼 만들어서 테스트하면
    알텐데 ㅠㅠ

    /////////////////////////////////////////////////
    procedure TForm1.M1Click(Sender: TObject);
    var
      wDev : double;
    begin
      wDev := 8.209631928e-317;
      Caption := Format('%6s',[FormatFloat('##0.0',wDev)]) ;
    end;
    /////////////////////////////////////////////////
    이 문장 에러 없습니다.

    /////////////////////////////////////////////////
    procedure TForm1.M1Click(Sender: TObject);
    var
       wDev : Double
       wArray :array of Double

    begin

    SetLength( wArray, 2);   // <= 추가..

    wDev := StdDev(wArray );

    Caption := Format('%6s',[FormatFloat('##0.0',wDev)]);

    end;
    /////////////////////////////////////////////////
    이 문장 에러 없습니다.



    답변 내용 다 쓰면서 생각들기로는 ... 흠... 혹시 SetLength 을 모르시는 것 아닌가요?