GameDev/[Unity]

[유니티]숫자를 문자열로 바꾸는 다양한 방법: ToString() 완벽 정리

Bit by Bit 2024. 12. 24. 06:44
728x90

 Unity에서 숫자를 문자열로 변환하는 것은 UI에서 숫자를 표시하거나 디버깅할 때 자주 사용되는 중요한 기능입니다. 특히, ToString() 메서드를 활용하면 숫자를 원하는 포맷으로 변환할 수 있는데, 이때 ToString("포맷") 안에 들어가는 문자열이 바로 숫자의 출력 형식을 결정합니다.

이 글에서는 ToString() 메서드에서 활용할 수 있는 포맷 문자열의 종류와 기능을 세부적으로 정리하고, 각각의 용도와 예제를 소개합니다.


1. 숫자를 포맷하는 표준 형식 문자열 (Standard Numeric Format Strings)

표준 형식 문자열은 기본 제공되는 형식으로, 간단한 포맷 지정을 통해 숫자를 다양한 스타일로 변환할 수 있습니다. 아래 표는 가장 많이 사용하는 숫자 형식 문자열과 그 기능을 정리한 내용입니다.

포맷 문자열 설명 예시
C (Currency) 통화 형식: 지역 통화 단위와 소수점 포함 ₩1,234.57 (한국 기준)
D (Decimal) 10진수 정수: 정수 값만 표시하며 소수점 제거 1234
E (Exponential) 지수 표기법: 과학적 표기법으로 변환 1.234567E+003
F (Fixed-point) 고정 소수점 형식: 소수점 자리수를 지정 (기본 2자리) 1234.57
G (General) 일반 형식: 소수점, 지수 등을 자동으로 조정 1234.567
N (Number) 숫자 형식: 천 단위 구분 기호와 함께 표시 1,234.57
P (Percent) 퍼센트 형식: 값에 100을 곱하고 % 추가 123456.70%
R (Round-trip) 라운드 트립: 원래 값 그대로 표현 1234.567
X (Hexadecimal) 16진수: 숫자를 16진수로 변환 4D2 (값: 1234)

2. 숫자를 포맷하는 사용자 정의 형식 문자열 (Custom Numeric Format Strings)

표준 형식 외에도 숫자를 원하는 대로 표현할 수 있도록 사용자 정의 형식 문자열을 지원합니다. 이 방법은 보다 세부적인 포맷이 필요할 때 유용합니다.

주요 기호와 기능

기호 설명 예시 결과
0 해당 자리수에 숫자가 없으면 0으로 채움 "00000" 01234
# 해당 자리수에 숫자가 없으면 빈칸으로 처리 "#####" 1234
. 소수점 구분 "0.00" 1234.57
, 천 단위 구분 기호 "#,###.##" 1,234.57
% 숫자에 100을 곱한 뒤 % 기호 추가 "0%" 123457%
E 지수 표기법 "0.0E+0" 1.2E+3

사용자 정의 형식 예시

float value = 1234.567f;
Debug.Log(value.ToString("0.00")); // 출력: 1234.57
Debug.Log(value.ToString("#,###.##")); // 출력: 1,234.57
Debug.Log(value.ToString("00000")); // 출력: 01234

3. ToString()으로 숫자 포맷 변경 시 뒤 숫자의 기능

ToString()에 포맷 문자열 뒤에 숫자를 함께 사용할 수 있습니다. 이 숫자는 소수점 이하 자리수를 설정하거나 특정 범위를 지정하는 데 활용됩니다. 이를 통해 숫자를 더욱 세밀하게 제어할 수 있습니다.

숫자 사용 예시

  • "F1": 소수점 아래 1자리까지 표시 (1234.5)
  • "N3": 천 단위 구분 기호를 포함한 숫자, 소수점 아래 3자리 (1,234.567)

4. 실제 프로젝트에서 유용한 활용 사례

(1) UI에서 통화 표시

float price = 1234.567f;
string formattedPrice = price.ToString("C");
Debug.Log(formattedPrice); // 출력: ₩1,234.57 (로컬 설정 기준)

(2) 진행률 퍼센트 표시

float progress = 0.75234f;
string formattedProgress = progress.ToString("P1");
Debug.Log(formattedProgress); // 출력: 75.2%

(3) 16진수 변환

int colorValue = 255;
string hexValue = colorValue.ToString("X2");
Debug.Log(hexValue); // 출력: FF

5. ToString()과 숫자 포맷을 효과적으로 사용하는 팁

  1. 로컬라이제이션 고려: C와 같은 통화 포맷은 시스템의 지역 설정을 기반으로 동작하므로, 다국어 지원이 필요한 경우 CultureInfo를 활용하세요.
  2. 소수점 자리수 제어: F, N과 같이 소수점 자리를 명시적으로 설정하면 UI에서 일관성 있는 출력이 가능합니다.
  3. 지수 표기법 사용: 과학적 계산이나 큰 숫자를 다룰 때는 E 포맷으로 효율적으로 표현할 수 있습니다.

Unity C#에서 ToString() 메서드는 숫자를 문자열로 변환할 때 매우 강력하고 유연한 도구입니다. 표준 형식과 사용자 정의 형식을 적절히 활용하면, 단순한 숫자 데이터를 읽기 쉽고 직관적으로 변환할 수 있습니다. 위 내용을 참고해 프로젝트에서 효율적인 포맷팅을 적용해 보세요!

이 글이 유용하셨다면, 공감과 댓글로 응원 부탁드려요! ✨
구독하시면 더 많은 정보를 빠르게 받아보실 수 있습니다. 😊

728x90