본문 바로가기
개발언어/C#

[C#] 돈 표시 및 콤마 표시 하기 - 다국어

by 창용이랑 2022. 12. 15.
728x90

String Format

C#에서 스트링에 콤마 표시를 위해서는

ToString이나 string.Format으로

서식지정자를 이용 하면 간단 하게 숫자에 콤마 표시를 할 수 있다. 

long value =  100000000;
print(value.ToString("C"));      // 화폐단위 ₩100,000,000
print(value.ToString("C2"));     // 화폐단위 + 소숫점 2자리까리 표시 ₩100,000,000.00
 
print(value.ToString("N0"));     // 콤마만 표시 100,000,000
print(value.ToString("N"));      // 콤마만 표시 + 소숫점 2자리 100,000,000.00
print(value.ToString("N2"));     // 콤마만 표시 + 소숫점 2자리 100,000,000.00
 
print(value.ToString("#,##0")); // 콤마만 표시 100,000,000
 
 
print(string.Format( "{0:N0}", value)); // 콤마만 표시 100,000,000

C 와 N은 언어와 문화권에 따라서 표기법이 자동으로 바껴서 표기 된다.

그래서 다국어 작업 할 때 유리.

using System.Globalization;

CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("fr-FR");

으로 변경 가능하다.

 

#,##0 는 사용자 지정 서식 지정자로 

# : 0이 앞에 붙지 않음. 해당 자리에 숫자가 있으면 표시 없으면 표시 안 함. 

0 : 0이 앞에 붙음.  해당 자리에 숫자가 있으면 숫자 표시, 숫자가 없으면 0으로 표시 함

, : 콤마 표시 

 

string.Format : ToString 말고 string.Format 함수로도 사용 할 수 있다.

 

$ 문자열 보간 

${<interpolationExpression>[,<alignment>][:<formatString>]}

$문자열 보간을 사용 하면 ToString / string.Format을 좀 더 간결하게 표시 할 수 있습니다.

위의 예로 들면

print(value.ToString("C2"))

==> print( $"{value:C2}";

와 같이 작성 할 수 있습니다. 

{ 변수 [ ,자릿수 정렬 :형식 ]}

와 같이 사용 할 수 있는데 

$"{value,-10:C2}"  

이렇게 하면 열자리 공간에 value를 표시 하되 왼쪽 정렬(+값을 경우 우측 정렬)을 이용 해서 화폐단위로 표시 하라 입니다. 

주의)

형식 지정 할 때 :C2 에서 :(콜론)과 형식 사이에 공백이 없어야 원하는대로 정상 표시가 됩니다.

 

MSDN

docs.microsoft.com/ko-kr/dotnet/standard/base-types/standard-numeric-format-strings

 

표준 숫자 서식 문자열

이 문서에서는 .NET에서 표준 숫자 서식 문자열을 사용하여 일반적인 숫자 형식을 텍스트 표현으로 서식 지정하는 방법을 알아봅니다.

learn.microsoft.com

 

 

출처 : https://dragontory.tistory.com/315