본문 바로가기
프로그래밍/C# (WinForms)

C#, WinForms ] 천 단위로 콤마 넣기, separate Numbers with commas

by eteo 2023. 2. 25.

 

 

string.Format("{0:#,##0}", num);

 

 

사용 예시.

 

label의 textChanged Event처리 함수

 

"."으로 끝나는지, 소숫점을 포함하는지, 정수인지 구분하여 처리. string의 Replace()와 Split() 메서드 사용

 

 

    if(this.label1.Text.EndsWith("."))
    {
        string numStr = this.label1.Text.Replace(",", "").Replace(".", "");

        if (decimal.TryParse(numStr, out decimal num))
        {
            string formattedStr = string.Format("{0:#,##0}", num);

            this.label1.Text = formattedStr + ".";
        }
    }
    else if (this.label1.Text.Contains('.'))
    {
        string numStr = this.label1.Text.Replace(",", "");

        string[] delimeter = { "." };

        string[] parts = numStr.Split(delimeter, 2, StringSplitOptions.RemoveEmptyEntries);

        if (decimal.TryParse(parts[0], out decimal num))
        {
            string formattedStr = string.Format("{0:#,##0}", num);

            this.label1.Text = formattedStr + "." + parts[1];
        }
    }
    else
    {
        string numStr = this.label1.Text.Replace(",", "");

        if(decimal.TryParse(numStr, out decimal num))
        {
            string formattedStr = string.Format("{0:#,##0}", num);

            this.label1.Text = formattedStr;
        }
    }
}