반응형
게임에서 돈표시를 콤마 대신
"만 억 조 경 해"로 표시 할 일이 있어 방법을 찾아 봤다.
예전에 cpp 할 때는
1000 10000 100000000 과 같이
숫자로 나누고 반복 해서 자릿 수를 끼어 넣어 표시 하곤 했는데
C#에서 스트링 포맷으로 하니 간결 하고 편하고 좋다.
“파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
public class MoneyUnitString
{
static string[] unitSymbol = new string[] { "", "만", "억", "조", "경", "해" };
// long 보다 double이 최대 값이 커서 double 사용
public static string ToString(double value)
{
if( value == 0 ) { return "0"; }
int unitID = 0;
string number = string.Format("{0:# #### #### #### #### ####}", value).TrimStart();
string[] splits = number.Split(' ');
StringBuilder sb = new StringBuilder();
for (int i = splits.Length; i > 0; i--)
{
int digits = 0;
if (int.TryParse(splits[i - 1], out digits))
{
// 앞자리가 0이 아닐때
if (digits != 0)
{
sb.Insert(0, $"{ digits}{ unitSymbol[unitID] }");
}
}
else
{
// 마이너스나 숫자외 문자
sb.Insert(0, $"{ splits[i - 1] }");
}
unitID++;
}
return sb.ToString();
}
}
|
cs |
여기에 Extension Method를 사용 하면
해당 데이터 타입 구조체의 메소드로 사용 할 수 있다.
1
2
3
4
5
6
7
|
public static class Extensions
{
public static string ToMoneyString(this long target)
{
return MoneyString.ToString(target);
}
}
|
cs |
long money = 12345678900;
print( money.ToMoneyString() );
위와 같이 사용 가능 하다.
참 편하고 좋은 C# 되겠다.
Unity Money Display
반응형
'Programming' 카테고리의 다른 글
Bitbucket 에서 저장소 강제 푸쉬 하는 방법 (0) | 2021.04.22 |
---|---|
C# Enum Count 얻는 방법 - Enum 갯수 얻기 (0) | 2021.04.08 |
예제로 배우는 C# 프로그래밍 - 링크 (0) | 2021.03.05 |
C# 문자열 보간(String Interpolation)을 사용 하니 엄청 편하네. 문자열 서식지정자 말고 문자열 보간 사용 하자. (0) | 2021.03.05 |
C# 숫자에 2진수 값을 코드에 넣는 방법 - Binary literals , BitArray (0) | 2021.03.04 |