2009년 12월 23일 수요일

[C#] 숫자금액->한글로 변환


static public string Number2Hangle(long lngNumber)
{
	bool UseDecimal = false;
	string Sign = "";
	int i = 0;
	int Level = 0;

	string[] NumberChar = new string[] { "", "일", "이", "삼", "사", "오", "육", "칠", "팔", "구" };
	string[] LevelChar = new string[] { "", "십", "백", "천" };
	string[] DecimalChar = new string[] { "", "만", "억", "조", "경" };

	string strValue = string.Format("{0}", lngNumber);
	string NumToKorea = Sign;
	UseDecimal = false;

	for (i = 0; i < strValue.Length; i++)
	{
		Level = strValue.Length - i;
		if (strValue.Substring(i, 1) != "0")
		{
			UseDecimal = true;
			if (((Level - 1) % 4) == 0)
			{
				NumToKorea = NumToKorea + NumberChar[int.Parse(strValue.Substring(i, 1))] + DecimalChar[(Level - 1) / 4];
				UseDecimal = false;
			}
			else
			{
				if (strValue.Substring(i, 1) == "1")
				{
					NumToKorea = NumToKorea + LevelChar[(Level - 1) % 4];
				}
				else
				{
					NumToKorea = NumToKorea + NumberChar[int.Parse(strValue.Substring(i, 1))] + LevelChar[(Level - 1) % 4];
				}
			}
		}
		else
		{
			if ((Level % 4 == 0) && UseDecimal)
			{
				NumToKorea = NumToKorea + DecimalChar[Level / 4];
				UseDecimal = false;
			}
		}
	}
	return NumToKorea;
}

댓글 2개:

  1. trackback from: [C#.NET]Nullable type 이란
    nullable.txt 일반적으로 데이타형중에서 숫자형은 NULL 값을 가질 수 없는게 보통이죠. 하지만 데이터 베이스에서는 NULL 값을 가질수 있습니다. 그래서 C#2.0 부터는 Nullable 이라는 좀 특이한 아이가 생겨났습니다. Nullable<T> Nullable형은 숫자형의 변수를 선언하고 그 숫자 변수뒤에 [?](물음표) 를 붙혀서 사용합니다. 이 기호를 붙임으로 해서 숫자형 임에도 불구하고 null 값을 대입받는 것이 가능해 집니다...

    답글삭제
  2. 좋은 내용 감사합니다. 저는 SQL Server 분야에서 강의와 컨설팅을 하고 있는 김연홍이라고 합니다. 이번에 제가 SQL Server 개발자 책을 집필중인데 C#으로 만들어진 소스를 데이터베이스 개체로 등록하는 내용이 있습니다. 해서 이 소스를 사용하고 싶습니다. 이 메시지를 확인하시면 doublegi@hanmail.net으로 연락 주시기 바랍니다. 감사합니다.

    답글삭제