금액, 숫자를 문자로 바꾸기
금액 형식의 숫자를 한글로 바꾸어 반환하는 메서드입니다.
문자열 형식의 숫자를 인수로 넘기는 경우에는
콤마(,)는 허용, 그 외 숫자형식이 아닌 문자는 에러메시지로 처리합니다.
소숫점이하의 수는 소숫점에서 반올림 하여 계산합니다.
public string NumberToHangul( double number)
{
return NumberToHangul( number.ToString() );
}
public string NumberToHangul( string strNumber)
{
// 콤마(,)제거
strNumber = strNumber.Replace(",","");
// 문자열이 숫자형식인지 체크
for( int i=0; i<strNumber.Length; i++)
{
if( !Char.IsNumber( strNumber, i) && strNumber[i] != '.')
return "숫자형식이 아닙니다.";
}
// 소숫점 이하 숫자가 존재하면 반올림처리
if( strNumber.IndexOf(".") >=0 )
{
double tempNum = Convert.ToDouble( strNumber );
strNumber = Convert.ToString( Math.Round( tempNum ) );
}
string[] arrayAmt = new string[]
{"일", "이", "삼", "사", "오", "육", "칠", "팔", "구", "십"};
string[] arraypos = new string[] {"", "십", "백", "천"};
string[] arrayUnit = new string[]
{"", "만", "억", "조", "경", "해", "자", "양", "구", "간", "정", "재", "극",
"항하사", "아승기", "나유타", "불가사의", "무량대수"};
int pos = strNumber.Length%4; //자리수
int unit = strNumber.Length/4;
string korNumber = String.Empty;
int op = 0;
for( int i=0; i<strNumber.Length; i++ )
{
if( pos==0 ) pos=4;
int num = Convert.ToInt16( strNumber.Substring(i,1) );
if( num > 0 )
{
korNumber += arrayAmt[ num-1 ];
korNumber += arraypos[ pos-1 ];
op=1;
}
if(pos == 1)
{
if( op == 1 ) korNumber += arrayUnit[ unit ];
unit--; op = 0;
}
pos--;
}
return korNumber ;
}
'IT-개발,DB' 카테고리의 다른 글
[개발/VC++] AppID란 무엇인가? (0) | 2010.12.28 |
---|---|
[개발] [Vista] CoCreateInstanceAsAdmin() 에러 메세지 (0) | 2010.12.28 |
[개발/asp.net] 사용자의 인터넷익스플로러 창 모두 닫기 (0) | 2010.12.10 |
[개발/asp.net] 파일이름으로 응용 프로그램 시작하기 (0) | 2010.12.10 |
[개발/asp.net] Visual Studio 2005에 .NET 3.0 환경 추가하기 (0) | 2010.12.10 |
댓글