[C#] 금액 천단위 (콤마, 마스크 타입) 설정하는 함수

2011. 1. 18. 21:57개발관련기록/C#

반응형
        /*
         * 금액 타입으로 바꿔주는 함수
         */
        private string LetMoneyTYPE(string Num)
        {
            if (Num.Contains("."))
            {
                //소수점 이하의 스트링을 저장한다.
                int Check = Num.Substring(Num.IndexOf('.')).Length;
                char[] delimiterChars = { '.' };
                string[] words = Num.Split(delimiterChars);
                string mntyNum = string.Format("{0:#,0}", int.Parse(words[0]));
                string ComplateNum = string.Format("{0}.{1}", mntyNum, words[1]);
                return ComplateNum;
            }
            else
            {
                string mntyNum = string.Format("{0:#,0}", int.Parse(Num));
                string ComplateNum = string.Format("{0}", mntyNum);
                return ComplateNum;
            }
        }



소수점이 있으면 소수점까지 표현하여 금액 콤마를 찍습니다.

예) 1234.567
delimiter Char를 이용해서 '.' 을 기준으로 string 배열로 각각 저장합니다.
words[0] = 1234  //소수점 앞 금액
words[1] = 567   //소수점 뒤 숫자

string mntyNum = string.Format("{0:#,0}", int.Parse(words[0]);
위 함수는 format의 .net의 라이브러리중 하나로 숫자로 들어온 값을 금액 콤마 마스크 타입을 정해 줍니다.
현재 words[0]의 값이 1234가 param 으로 들어왔으므로, mntyNum  에는 1,234 의 값이 찍히겠죠?

그리고 소수점 뒤의 값을 연결해줍니다.
string.Format("{0}.{1}", mntyNum, words[1]);
그러면 다음과 같은 결과값을 return 해 줍니다.
return 결과값 =>   1,234.567

아래의 부분은 소수점이 없을 경우 금액의 콤마 마스크 타입을 만들어 주는 부분입니다.



반응형