개발관련기록/C#
[C#] 금액 천단위 (콤마, 마스크 타입) 설정하는 함수
267
2011. 1. 18. 21:57
반응형
/*
* 금액 타입으로 바꿔주는 함수
*/
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;
}
}
* 금액 타입으로 바꿔주는 함수
*/
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
아래의 부분은 소수점이 없을 경우 금액의 콤마 마스크 타입을 만들어 주는 부분입니다.
반응형