먼저 계속 답변해 주신 강민주님께 감사드리구용...
제질문이 제가 의도하는 바와는 쪼금 틀렸던것 같네용.
여러모로 죄송..
첫번째로.. 강민주님께서 답해주신 대로 해봤는데..
폼위에 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자리라는 자리수도 지키면서 말이죠...
그럼, 다시 한번 부탁드립니다.
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자리라는 자리수도 지키면서 말이죠...
> 그럼, 다시 한번 부탁드립니다.