C#

[C#] String Decimal 소수점 지정 = String.Fromat() 함수사용, 숫자 3자리(천단위)마다 콤마 찍기

saltdoll 2017. 8. 23. 07:55
반응형

C#에서 String이나, Decimal에서 소수점 지정하고 (예: 소주점 2째자리까지 자르기등)

C# .NET에서 사용하는 Format Specifier를 사용

 

string.Format()

 

 

n은 Argument 위치이며 0부터 시작합니다.
w는 출력 Width를 가리키며,
t는 출력 데이타 타입을 그리고 마지막으로
p는 정확도(Precision)을 나타냅니다.

{n,w:tp}

 

예를 들어 아래 예제를 살펴보면,
 string.Format의 첫번째 파라미터는 Standard Format Specifier를 표현하는 것으로, 

 

첫부분의 0은 Format Specifier다음의 첫번째 파라미터 즉 val을 입력으로 받는다는 뜻이고,
콤마 뒤의 10은 전체 넓이가 10임을 의미하며
따라서 출력변수 s는 앞의 공백을 포함하여 총 10자리를 갖게 됩니다. 

10 다음의 N은 출력이 Numeric 형식으로 출력된다는 것이고,
이 형식은 만약 1000 자리마다 콤마를(Locale에 따라 다름) 표시됩니다. 
마지막 N다음의 2는 소숫점 2자리까지 출력하고 싶다는 것을 나타냅니다.

 

decimal val = 1234.5678M;
string s = string.Format("{0,10:N2}", val);
// 출력: "  1,234.57"
Console.WriteLine(s); 

 

 

 

 

또 다른 예제

문자열의 소수점 2자리로 자르기

 String.Format("{0:0.00}", row["CASH_APPROVED_AMT"]) 

String.Format("{0:0.00}", 123.4567);      // "123.46"

 

Decimal의 소수점 2자리 자리기

String.Format("{0:N2}", _cash_total)

 

그외 예제 숫자형 포멧

// N: Number 타입
string.Format("{0:N2}",1234.567); // 1,234.57

// D: Decimal 타입
string.Format("{0:D9}", 12345) // 000012345

// C: Currency 타입
string.Format("{0:C}", 12345); // $12,345.00
string.Format("{0:C0}", 12345); // $12,345

// X: 16진수
string.Format("{0:X}", 1000); // 3E8

// F: Fixed Point
string.Format("{0:F3}", 12345.6); // 12345.600

// E: Scientific
 string.Format("{0:E}", 12345.6); // 1.23456E+004

 

숫자 Custom Format Specifier

# : Digit placeholder (0가 앞에 붙지 않음)
0 : Zero placeholder (0가 앞에 붙음)
. : 소숫점 (Decimal point)
, : 천 자리 (Thousands operator)
; : Section separator

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

 

예제

int val = -12345;
s = string.Format("{0:#,##0}", val); 
// 출력: -12,345

s = string.Format("{0:#,##0;(#,##0)}", val) 
// 출력 : (12,345)

val = 0;
s = string.Format("{0:#,##0;(#,##0);Zero}", val) 
// 출력 : Zero

 

참고 Site:

(1) 숫자 서식 지정자 : http://www.csharpstudy.com/Tip/Tip-number-format.aspx 

(2) Leave only two decimal places after the dot

 

 

 

댓글 : DataGridView에서 Cell별로 색상 변경하기

Q: 숫자 0은 검정색, 숫자>=1 빨간색, 숫자<=-1 파란색

 

Answer:

@lovendon: DataGridView에서 Cell 색 변경은 이렇게 하시면 됩니다.

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{

    // 첫번째 컬럼인 경우

    if (e.ColumnIndex == 0 && e.Value != null)
    {

        Color color;
        int i = (int)e.Value;                

        if (i == 0)
        {
            color = Color.Black;
        }
        else if (i > 0)
        {
            color = Color.Red;
        }
        else
        {
            color = Color.Blue;
        }

        dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.ForeColor = color;

    }

 

반응형
도움이 되셨다면 하트모양의 "♡ 공감"을 눌러주시면 큰 격려가 됩니다.
(로그인하지 않으셔도 가능)