C#에서 float 또는 double 값을 문자열로 포맷할 때, 전체 길이와 소수점 이하 자리수를 제어하는 방법은 ToString() 또는 String.Format()을 활용하는 것이 일반적이에요. 아래에 다양한 포맷 옵션을 정리해드릴게요. 😊
🎯 소수점 자리수 지정: "F" 포맷
csharp
float value = 123.45678f;
string formatted = value.ToString("F2"); // 결과: "123.46"
- "F2"는 소수점 이하 2자리까지 표시.
- 반올림 처리됨.
💰 숫자 전체 길이 + 소수점: "N" 포맷
csharp
float value = 12345.6789f;
string formatted = value.ToString("N3"); // 결과: "12,345.679"
- "N3"는 천 단위 구분자 포함 + 소수점 이하 3자리.
- "N0"은 소수점 없이 정수만 표시.
🧮 String.Format() 사용 예시
csharp
float value = 1.23456f;
string result = string.Format("{0,10:F2}", value); // 결과: " 1.23"
- {0,10:F2}는 전체 10자리 필드에 소수점 이하 2자리로 출력.
- 왼쪽에 공백이 채워져 오른쪽 정렬됨.
📌 사용자 지정 포맷 (정렬 포함)
csharp
float value = 3.14159f;
string result = string.Format("{0,-10:F3}", value); // 결과: "3.142 "
- -10은 왼쪽 정렬, F3은 소수점 이하 3자리.
⚠️ 주의사항
- float은 부동소수점 오차가 있을 수 있으므로 정밀한 계산이 필요한 경우 decimal을 고려하세요.
- 포맷 문자열은 문화권 설정에 따라 소수점 기호(. vs ,)가 달라질 수 있어요.
C#의 $"{...}" 문자열 보간(interpolation) 문법에서도 float 값을 포맷팅하고 전체 길이 및 소수점 자리수를 지정할 수 있어요. 아래에 다양한 예시를 정리해드릴게요. 😄
✨ 기본 소수점 자리수 지정
csharp
float value = 123.45678f;
string result = $"{value:F2}"; // 결과: "123.46"
- F2: 소수점 이하 2자리까지 표시 (반올림됨)
📏 전체 길이 지정 (정렬 포함)
csharp
float value = 1.23456f;
string result = $"{value,10:F2}"; // 결과: " 1.23"
- 10: 전체 필드 너비 (오른쪽 정렬)
- F2: 소수점 이하 2자리
csharp
string result = $"{value,-10:F2}"; // 결과: "1.23 "
- -10: 왼쪽 정렬
🧮 여러 값 정렬 예시
csharp
float a = 3.14159f;
float b = 2.71828f;
Console.WriteLine($"|{a,8:F3}|{b,8:F3}|");
// 결과: | 3.142| 2.718|
- 각 값이 8자리 필드에 소수점 이하 3자리로 정렬됨
🌍 문화권별 포맷 (예: 천 단위 구분자)
csharp
float bigNumber = 1234567.89f;
string result = $"{bigNumber:N2}"; // 결과: "1,234,567.89" (en-US 기준)
- N2: 천 단위 구분자 포함 + 소수점 이하 2자리
⚠️ 참고사항
- 보간식 내부에서 {value,10:F2}처럼 정렬과 포맷을 동시에 지정할 수 있어요.
- float 대신 decimal을 사용하면 정밀도가 더 높습니다.
- 보간된 문자열은 string.Format()보다 가독성이 좋고 유지보수가 쉬워요.
LIST
'.NET' 카테고리의 다른 글
| C#에서 DllImport를 사용해서 C++ DLL 함수를 호출할 때 진입점 못찾는 문제 관련 dumpbin 사용법 (1) | 2025.07.21 |
|---|---|
| C# Throw 발생 방법 (0) | 2025.05.13 |
| C# 폴더 내부 파일을 다른 폴더로 복사 (0) | 2025.05.13 |
| C# Random 함수 사용 (1) | 2025.05.13 |
| C# 선택한 폴더 안의 파일 및 폴더 삭제 방법 (0) | 2025.05.13 |