Q&A

  • [재질문]FORMAT문에서 숫자 3자리마다 콤마..
먼저 계속 답변해 주신 강민주님께 감사드리구용...

제질문이 제가 의도하는 바와는 쪼금 틀렸던것 같네용.

여러모로 죄송..



첫번째로.. 강민주님께서 답해주신 대로 해봤는데..

폼위에 label하나를 올려놓구 formcreate 이벤트에



label1.Caption := FormatFloat(' #,0', [1234567]);



로 해봤더니 [Error] Unit1.pas(28): Constant expression violates subrange bounds

로 나더군용. 제가 뭘 잘못한건지.. 알려 주심 감사하겠구용.



두번째, 제가 정말 알고 싶은건...

어떤 문장사이에서 숫자 1000단위이상 콤마가 나오는 것입니다.

간단히 적어보면,



var

a : longint;

b : longint;



begin

a := 12345;

b := 1234567;



showmessage(format('저는 %9d를 투자, %9d를 벌었습니다.',[a,b]);

end;



위 문장에서 대로 출력하면 a, b 부분은 12345와 1234567로 콤마없이 각각 9자리로 나옵니다. 위 format문에서 출력하고자 하는 문장 그대로에서 콤마만 첨가되게 할수 없는지 그 방법좀 알려 주셨으면 합니다. 9자리라는 자리수도 지키면서 말이죠...

그럼, 다시 한번 부탁드립니다.

1  COMMENTS
  • Profile
    하얀까마귀 2000.04.20 19:16
    안녕하세요 하얀까마귀 입니다..



    format문에서의 숫자에 ','를 삽입하는건 안될테고요...



    그래서 FormatFloat를 사용하는 겁니다...



    label1.Caption := FormatFloat(' #,0', [1234567]);

    ->> 이건 컴파일 에러를 낼것 같네요..



    Label1.Caption := FormatFloat('#,', 12323312);



    여기 타입에 '#,' 이라고 넣으시면 값이 0일때 그냥 공백만 리턴하게 되고

    '#,0'라고 하시면 값이 0일때 '0'을 리턴합니다.... 보기 좋은쪽으로 하시면 되겠죠?



    소숫점 이하도 '#,0.0'이렇게 하시면 4123의 값을 4,123.0라고 리턴을 하죠...



    정수인 경우 소수점 표시하고 싶지 않으면 '#,0.#'이라고 하시면 되고 소숫점 이하를



    설정하지 않으시면 실수형인 경우 소숫점이하는 반올림 합니다...



    그럼.. 즐거운 시간 되세요...



    - 하얀까마귀 -



    최현수 wrote:

    > 먼저 계속 답변해 주신 강민주님께 감사드리구용...

    > 제질문이 제가 의도하는 바와는 쪼금 틀렸던것 같네용.

    > 여러모로 죄송..

    >

    > 첫번째로.. 강민주님께서 답해주신 대로 해봤는데..

    > 폼위에 label하나를 올려놓구 formcreate 이벤트에

    >

    > label1.Caption := FormatFloat(' #,0', [1234567]);

    >

    > 로 해봤더니 [Error] Unit1.pas(28): Constant expression violates subrange bounds

    > 로 나더군용. 제가 뭘 잘못한건지.. 알려 주심 감사하겠구용.

    >

    > 두번째, 제가 정말 알고 싶은건...

    > 어떤 문장사이에서 숫자 1000단위이상 콤마가 나오는 것입니다.

    > 간단히 적어보면,

    >

    > var

    > a : longint;

    > b : longint;

    >

    > begin

    > a := 12345;

    > b := 1234567;

    >

    > showmessage(format('저는 %9d를 투자, %9d를 벌었습니다.',[a,b]);

    > end;

    >

    > 위 문장에서 대로 출력하면 a, b 부분은 12345와 1234567로 콤마없이 각각 9자리로 나옵니다. 위 format문에서 출력하고자 하는 문장 그대로에서 콤마만 첨가되게 할수 없는지 그 방법좀 알려 주셨으면 합니다. 9자리라는 자리수도 지키면서 말이죠...

    > 그럼, 다시 한번 부탁드립니다.