Q&A

  • 숫자금액을 한글금액으로 표시하려면...
안녕하십니까?



델파이 시작한지 얼마안된 초보입니다.

숫자금액을 한글금액으로 표시하고 싶은데 어떻게

하면 되는지 가르쳐 주시면 감사하겠습니다.



예를들면,



4132500 ==> 사백십삼만이천오백만원

15000000 ==> 일천오백만원

...



이상! 조언 부탁드립니다.

4  COMMENTS
  • Profile
    김영대 1999.09.03 19:25
    jwchoi 께서 말씀하시기를...

    > 안녕하십니까?

    >

    > 델파이 시작한지 얼마안된 초보입니다.

    > 숫자금액을 한글금액으로 표시하고 싶은데 어떻게

    > 하면 되는지 가르쳐 주시면 감사하겠습니다.

    >

    > 예를들면,

    >

    > 4132500 ==> 사백십삼만이천오백만원

    > 15000000 ==> 일천오백만원

    > ...

    >

    > 이상! 조언 부탁드립니다.



    제 홈페이지(http://myhome.shinbiro.com/~cozykyd/index.htm)의

    Delphi Tip 에서 "표기로 바꾸기" 로 검색해 보시면

    숫자를 영문 표기로 바꾸기, 숫자를 한글 표기로 바꾸기 가 있습니다





  • Profile
    구창민 1999.09.03 06:57
    jwchoi 께서 말씀하시기를...

    > 안녕하십니까?

    >

    > 델파이 시작한지 얼마안된 초보입니다.

    > 숫자금액을 한글금액으로 표시하고 싶은데 어떻게

    > 하면 되는지 가르쳐 주시면 감사하겠습니다.

    >

    > 예를들면,

    >

    > 4132500 ==> 사백십삼만이천오백만원

    > 15000000 ==> 일천오백만원

    > ...

    >

    > 이상! 조언 부탁드립니다.





    jwchoi님 안녕하세요?

    아래 내용을 참조하세요~

    그럼.. 즐거운 프로그래밍 되시길~



    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls;



    type

    TForm1 = class(TForm)

    Button1: TButton;

    Edit1: TEdit;

    Label1: TLabel;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation

    {$R *.DFM}



    function Amount(N: Longint): String;

    const

    Units: array[0..9] of String = ('', '일', '이', '삼', '사', '오',

    '육', '칠', '팔', '구');

    Lower: array[0..3] of String = ('', '십','백','천');

    Higher: array[0..4] of String = ('', '만','억','조','경');

    HighLevel: Integer = 0;

    begin

    case N of

    0..9: Result := Result + Units[N];

    10..99:

    Result := Result +

    Amount(N div 10) + Lower[1] + Amount(N mod 10);

    100..999:

    Result := Result +

    Amount(N div 100) + Lower[2] + Amount(N mod 100);

    1000..9999:

    Result := Result +

    Amount(N div 1000) + Lower[3] + Amount(N mod 1000);

    else

    begin

    inc(HighLevel);

    Result := Result +

    Amount(N div 10000) + Higher[HighLevel] + Amount(N mod 10000);

    dec(HighLevel);

    end;

    end;

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    try

    Label1.caption := Amount(Trunc(StrToFloat(Edit1.Text)));

    except

    on EConvertError do

    Label1.caption := '정확한 숫자를 입력하세요';

    end;

    end;



    end.

  • Profile
    늘초보 2001.11.16 03:01
    억이 넘어 갈때..

    일억이 일억만이라고 나옵니다.

    백억도 일백억만이라고..ㅠㅠ

    님이 주신 함수 어떻게든 고쳐 볼라고 그랫는데..

    역시 실력이 안 따라 주는군요.

    혹시 다른 소스 없나영?





    구창민 wrote:

    > jwchoi 께서 말씀하시기를...

    > > 안녕하십니까?

    > >

    > > 델파이 시작한지 얼마안된 초보입니다.

    > > 숫자금액을 한글금액으로 표시하고 싶은데 어떻게

    > > 하면 되는지 가르쳐 주시면 감사하겠습니다.

    > >

    > > 예를들면,

    > >

    > > 4132500 ==> 사백십삼만이천오백만원

    > > 15000000 ==> 일천오백만원

    > > ...

    > >

    > > 이상! 조언 부탁드립니다.

    >

    >

    > jwchoi님 안녕하세요?

    > 아래 내용을 참조하세요~

    > 그럼.. 즐거운 프로그래밍 되시길~

    >

    > unit Unit1;

    >

    > interface

    >

    > uses

    > Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    > StdCtrls;

    >

    > type

    > TForm1 = class(TForm)

    > Button1: TButton;

    > Edit1: TEdit;

    > Label1: TLabel;

    > procedure Button1Click(Sender: TObject);

    > private

    > { Private declarations }

    > public

    > { Public declarations }

    > end;

    >

    > var

    > Form1: TForm1;

    >

    > implementation

    > {$R *.DFM}

    >

    > function Amount(N: Longint): String;

    > const

    > Units: array[0..9] of String = ('', '일', '이', '삼', '사', '오',

    > '육', '칠', '팔', '구');

    > Lower: array[0..3] of String = ('', '십','백','천');

    > Higher: array[0..4] of String = ('', '만','억','조','경');

    > HighLevel: Integer = 0;

    > begin

    > case N of

    > 0..9: Result := Result + Units[N];

    > 10..99:

    > Result := Result +

    > Amount(N div 10) + Lower[1] + Amount(N mod 10);

    > 100..999:

    > Result := Result +

    > Amount(N div 100) + Lower[2] + Amount(N mod 100);

    > 1000..9999:

    > Result := Result +

    > Amount(N div 1000) + Lower[3] + Amount(N mod 1000);

    > else

    > begin

    > inc(HighLevel);

    > Result := Result +

    > Amount(N div 10000) + Higher[HighLevel] + Amount(N mod 10000);

    > dec(HighLevel);

    > end;

    > end;

    > end;

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > try

    > Label1.caption := Amount(Trunc(StrToFloat(Edit1.Text)));

    > except

    > on EConvertError do

    > Label1.caption := '정확한 숫자를 입력하세요';

    > end;

    > end;

    >

    > end.

  • Profile
    가을바람 2007.11.25 01:55
    http://tong.nate.com/lhs0806/42023772